forked from abheekd/usaco-practice
Abheek Dhawan
3 years ago
11 changed files with 261 additions and 0 deletions
@ -0,0 +1,42 @@ |
|||
#include <algorithm> |
|||
#include <iostream> |
|||
using namespace std; |
|||
|
|||
long find_fact(int num) { |
|||
long num_perms = 1; |
|||
for (int i = 0; i < num; i++) { |
|||
num_perms *= num - i; |
|||
} |
|||
return num_perms; |
|||
} |
|||
|
|||
int main() { |
|||
string m; |
|||
cin >> m; |
|||
string n = m; |
|||
sort(n.begin(), n.end()); |
|||
|
|||
long num_perms = 1; |
|||
int current_repetition = 1; |
|||
for (int i = 0; i < n.length(); i++) { |
|||
num_perms *= n.length() - i; |
|||
if (i > 0) { |
|||
if (n.at(i) == n.at(i - 1)) { |
|||
current_repetition += 1; |
|||
} else { |
|||
if (current_repetition > 1) { |
|||
num_perms /= find_fact(current_repetition); |
|||
} |
|||
current_repetition = 1; |
|||
} |
|||
} |
|||
} |
|||
if (current_repetition > 1) { |
|||
num_perms /= find_fact(current_repetition); |
|||
} |
|||
|
|||
cout << num_perms << endl; |
|||
do { |
|||
cout << n << endl; |
|||
} while (next_permutation(n.begin(), n.end())); |
|||
} |
@ -0,0 +1,30 @@ |
|||
#include <algorithm> |
|||
#include <iostream> |
|||
#include <stdlib.h> |
|||
#include <vector> |
|||
|
|||
using namespace std; |
|||
|
|||
int main() { |
|||
int n; |
|||
cin >> n; |
|||
vector<int> x; |
|||
|
|||
int a = 1; |
|||
|
|||
for (int i = 0; i < n; i++) { |
|||
int j; |
|||
cin >> j; |
|||
x.push_back(j); |
|||
} |
|||
|
|||
sort(x.begin(), x.end()); |
|||
|
|||
for (unsigned int i = 0; i < x.size() - 1; i++) { |
|||
// cout << x.at(i) << " ";
|
|||
if (x.at(i) < x.at(i + 1)) { |
|||
a++; |
|||
} |
|||
} |
|||
cout << a; |
|||
} |
@ -0,0 +1,19 @@ |
|||
#include <iostream> |
|||
using namespace std; |
|||
|
|||
int main() { |
|||
int n; |
|||
cin >> n; |
|||
int px = 0; |
|||
long long ans = 0; |
|||
for (int i = 0; i < n; i++) { |
|||
int x; |
|||
cin >> x; |
|||
if (x < px) { |
|||
ans += px - x; |
|||
x = px; |
|||
} |
|||
px = x; |
|||
} |
|||
cout << ans; |
|||
} |
@ -0,0 +1,21 @@ |
|||
#include <iostream> |
|||
using namespace std; |
|||
long findMissingNo(long arr[], long len) { |
|||
long temp; |
|||
temp = ((len) * (len + 1)) / 2; |
|||
for (long i = 0; i < len - 1; i++) |
|||
temp -= arr[i]; |
|||
return temp; |
|||
} |
|||
|
|||
int main() { |
|||
long n; |
|||
cin >> n; |
|||
long arr[n]; |
|||
for (long i = 0; i < n - 1; i++) { |
|||
cin >> arr[i]; |
|||
} |
|||
long missingNo = findMissingNo(arr, n); |
|||
cout << missingNo; |
|||
return 0; |
|||
} |
@ -0,0 +1,32 @@ |
|||
#include <iostream> |
|||
using namespace std; |
|||
|
|||
int main() { |
|||
long long n; |
|||
cin >> n; |
|||
long long y, x; |
|||
long long v; |
|||
for (long long i = 0; i < n; i++) { |
|||
cin >> y; |
|||
cin >> x; |
|||
|
|||
if (y > x) { |
|||
if (y % 2 == 0) { |
|||
v = y * y; |
|||
v -= x - 1; |
|||
} else { |
|||
v = (y - 1) * (y - 1) + 1; |
|||
v += x - 1; |
|||
} |
|||
} else { |
|||
if (x % 2 == 0) { |
|||
v = (x - 1) * (x - 1) + 1; |
|||
v += y - 1; |
|||
} else { |
|||
v = x * x; |
|||
v -= y - 1; |
|||
} |
|||
} |
|||
cout << v << endl; |
|||
} |
|||
} |
@ -0,0 +1,14 @@ |
|||
#include <iostream> |
|||
using namespace std; |
|||
|
|||
int main() { |
|||
bool solution; |
|||
string x; |
|||
cin >> x; |
|||
int c[26]; |
|||
for (int i = 0; i < x.length(); i++) { |
|||
c[(int)x.at(i) - 48]++; |
|||
} |
|||
for (int i : c) |
|||
cout << i << " "; |
|||
} |
@ -0,0 +1,29 @@ |
|||
#include <iostream> |
|||
using namespace std; |
|||
|
|||
int main() { |
|||
int n; |
|||
cin >> n; |
|||
|
|||
if (n == 1) { |
|||
cout << 1; |
|||
return 0; |
|||
} |
|||
|
|||
if (n == 2 || n == 3) { |
|||
cout << "NO SOLUTION"; |
|||
return 0; |
|||
} |
|||
|
|||
for (long long i = 1; i <= n; i++) { |
|||
if (i % 2 == 0) { |
|||
cout << i << " "; |
|||
} |
|||
} |
|||
|
|||
for (long long i = 1; i <= n; i++) { |
|||
if (i % 2 == 1) { |
|||
cout << i << " "; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,22 @@ |
|||
#include <iostream> |
|||
#include <vector> |
|||
using namespace std; |
|||
|
|||
int main() { |
|||
string s; |
|||
cin >> s; |
|||
int ans = 0, c = 0; |
|||
|
|||
char l = 'A'; |
|||
for (char d : s) { |
|||
if (d == l) { |
|||
++c; |
|||
ans = max(c, ans); |
|||
} else { |
|||
l = d; |
|||
c = 1; |
|||
} |
|||
} |
|||
|
|||
cout << ans; |
|||
} |
@ -0,0 +1,14 @@ |
|||
#include <cmath> |
|||
#include <iostream> |
|||
using namespace std; |
|||
|
|||
int main() { |
|||
long n; |
|||
cin >> n; |
|||
|
|||
int a = 0; |
|||
for (int i = 0; i < 100; i++) { |
|||
a += floor(n / pow(5, i + 1)); |
|||
} |
|||
cout << a; |
|||
} |
@ -0,0 +1,20 @@ |
|||
#include <cmath> |
|||
#include <iostream> |
|||
using namespace std; |
|||
|
|||
int main() { |
|||
long n; |
|||
cin >> n; |
|||
|
|||
int a; |
|||
/* a += floor(n / 5);
|
|||
a += floor(n / 25); |
|||
a += floor(n / 125); |
|||
a += floor(n / 625); |
|||
a += floor(n / 3125); |
|||
a += floor(n / 15625);*/ |
|||
for (int i = 0; i < 100; i++) { |
|||
a += floor(n / pow(5, i + 1)); |
|||
} |
|||
cout << a; |
|||
} |
@ -0,0 +1,18 @@ |
|||
#include <iostream> |
|||
using namespace std; |
|||
|
|||
int main() { |
|||
long long i; |
|||
cin >> i; |
|||
cout << i << " "; |
|||
|
|||
while (i != 1) { |
|||
if (i % 2 == 0) { |
|||
i = i / 2; |
|||
cout << i << " "; |
|||
} else { |
|||
i = i * 3 + 1; |
|||
cout << i << " "; |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue