├── CodeChef ├── ABX02.cpp └── SNAKEEAT.cpp ├── Codeforces ├── CF100812-GYM-E.cpp ├── CF104-D2-D.cpp ├── CF14-D2-D.cpp ├── CF146-D2-D.cpp ├── CF155-D2-C.cpp ├── CF155-D2-D.cpp ├── CF157-D2-D.cpp ├── CF168-D2-D.cpp ├── CF194-D2-C.cpp ├── CF195-D2-C.cpp ├── CF197-D2-D.cpp ├── CF199-D2-B.cpp ├── CF200-D2-C.cpp ├── CF223-D1-B.cpp ├── CF224-D2-C.cpp ├── CF234-D2-H.cpp ├── CF255-D2-D.cpp ├── CF257-D2-C.cpp ├── CF257-D2-D.cpp ├── CF265-D2-D.cpp ├── CF27-D2-D.cpp ├── CF270-D2-D.cpp ├── CF284-D2-D.cpp ├── CF292-D12-D.cpp ├── CF296-D2-C.cpp ├── CF318-D2-D.cpp ├── CF327-D2-D.cpp ├── CF340-D2-D.cpp ├── CF344-D2-D.cpp ├── CF358-D2-D.cpp ├── CF359-D2-D.cpp ├── CF363-D2-D.cpp ├── CF365-D2-C.cpp ├── CF4-D2-D.cpp ├── CF408-D2-D.cpp ├── CF418-D1-B.cpp ├── CF430-D2-D.cpp ├── CF431-D2-D.cpp ├── CF439-D2-C.cpp ├── CF448-D2-D.cpp ├── CF460-D2-C.cpp ├── CF471-D2-C.cpp ├── CF474-D2-C.cpp ├── CF476-D2-D.cpp ├── CF483-D2-D.cpp ├── CF484-D1-E.cpp ├── CF519-D2-D.cpp ├── CF52-D12-C.cpp ├── CF534-D2-D.cpp ├── CF535-D2-C.cpp ├── CF54-D12-C.cpp ├── CF548-D2-D.cpp ├── CF550-D2-C.cpp ├── CF550-D2-D.cpp ├── CF557-D2-C.cpp ├── CF560-D2-D.cpp ├── CF567-D2-D.cpp ├── CF58-D2-D.cpp ├── CF606-D2-D.cpp ├── CF617-D2-C.cpp ├── CF651-D2-D.cpp ├── CF682-D2-D.cpp ├── CF689-D2-D.cpp ├── CF701-D2-D.cpp ├── CF702-D2-E.cpp ├── CF711-D2-D.cpp ├── CF721-D2-D.cpp ├── CF733-D2-D.cpp ├── CF742-D2-D.cpp ├── CF743-D2-D.cpp ├── CF75-D2-D.cpp ├── CF766-D2-D.cpp ├── CF776-D2-C.cpp ├── CF812-D2-C.cpp ├── CF812-D2-D.cpp ├── CF84-D2-D.cpp ├── CF909-D2-D.cpp ├── CF920-D2-F.cpp ├── CF930-D1-A.cpp ├── CF930-D1-B.cpp ├── CF939-D2-D.cpp ├── CF939-D2-E.cpp ├── CF954-D2-A.cpp ├── CF954-D2-B.cpp ├── CF954-D2-C.cpp ├── CF954-D2-D.cpp ├── CF954-D2-E.cpp ├── CF954-D2-G.cpp ├── CF959-D2-A.cpp ├── CF959-D2-B.cpp ├── CF959-D2-C.cpp └── CF959-D2-E.cpp ├── HackerRank ├── beautiful-path.cpp ├── hyperspace-travel.cpp └── maximum-palindromes.cpp ├── ICPC Live Archive ├── 2191.cpp ├── 2281.cpp ├── 3113.cpp ├── 5130.cpp ├── 5221.cpp └── 6398.cpp ├── InterviewBit ├── add-one-to-number.java ├── anti-diagonals.java ├── excel-column-number.java ├── excel-column-title.java ├── length-of-last-word.java ├── noble-integer.java ├── pascal-triangle.java └── spiral-order-matrix-i.java ├── KATTIS ├── WF 2016 - Ceiling Function.cpp └── tourists.cpp ├── POJ ├── 2000.cpp └── 2096.cpp ├── README.md ├── SPOJ ├── BRCKTS.cpp ├── BRICKS.cpp ├── CCOST.cpp ├── CDC12_H.cpp ├── CITY2.cpp ├── CNTPRIME.cpp ├── CVJETICI.cpp ├── DICT.cpp ├── DICTSUB.cpp ├── DQUERY.cpp ├── GCPC11C.cpp ├── GSS1.cpp ├── GSS3.cpp ├── GSS4.cpp ├── HELPR2D2.cpp ├── HISTOGRA.cpp ├── HORRIBLE.cpp ├── IMPUNITS.cpp ├── KGSS.cpp ├── KQUERY.cpp ├── LITE.cpp ├── MATSUM.cpp ├── MELE3.cpp ├── MKTHNUM.cpp ├── ORDERSET.cpp ├── PHONELST.cpp ├── PIR.cpp ├── SEGSQRSS.cpp ├── TOE1.cpp ├── TWINSNOW.cpp └── WEIRDFN.cpp ├── TIMUS ├── 1209.cpp └── 1437.cpp ├── Topcoder ├── SRM146-D2-1000.cpp ├── SRM149-D1-500.cpp ├── SRM232-D2-500.cpp ├── SRM301-D1-500.cpp ├── SRM339-D1-500.cpp ├── SRM361-D2-500.cpp ├── SRM364-D1-500.cpp ├── SRM367-D2-1000.cpp ├── SRM372-D2-500.cpp ├── SRM410-D2-500.cpp ├── SRM433-D2-500.cpp ├── SRM466-D2-500.cpp └── SRM493-D2-1000.cpp ├── USACO └── lasers-and-mirrors.cpp └── UVA ├── 10077.cpp ├── 10100.cpp ├── 10242.cpp ├── 10279.cpp ├── 10301.cpp ├── 10365.cpp ├── 10404.cpp ├── 10432.cpp ├── 10452 - DFS.cpp ├── 10452.cpp ├── 10462.cpp ├── 10496.cpp ├── 10600.cpp ├── 10611.cpp ├── 10622.cpp ├── 10763.cpp ├── 11094.cpp ├── 11234.cpp ├── 11345.cpp ├── 11402.cpp ├── 11437.cpp ├── 11504.cpp ├── 11753.cpp ├── 1197.cpp ├── 12124.cpp ├── 12299.cpp ├── 1232.cpp ├── 12532.cpp ├── 12578.cpp ├── 12657.cpp ├── 12712.cpp ├── 12748.cpp ├── 12952.cpp ├── 1362.cpp ├── 270.cpp ├── 344.cpp ├── 350.cpp ├── 356.cpp ├── 460.cpp ├── 466.cpp ├── 501.cpp ├── 542.cpp ├── 562.cpp ├── 576.cpp ├── 622.cpp ├── 750.cpp ├── 833.cpp ├── 962.cpp └── 967.cpp /Codeforces/CF104-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int main() { 65 | PLAY(); 66 | 67 | 68 | 69 | ll n, k, p; 70 | cin >> n >> k >> p; 71 | if (n % 2 && k) n--, k--; 72 | 73 | if (2 * k > n) { 74 | ll t = 2 * k - n; 75 | n -= t, k -= t; 76 | } 77 | while (p--) { 78 | ll x; 79 | cin >> x; 80 | if ((x > n) || ((x % 2 == 0) && ((n - x) / 2 < k))) 81 | cout << "X"; 82 | else 83 | cout << "."; 84 | } 85 | 86 | return 0; 87 | } 88 | -------------------------------------------------------------------------------- /Codeforces/CF155-D2-C.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | string s; 65 | bool forb[50][50]; 66 | 67 | int dp[100005][50]; 68 | 69 | int solve(int idx, int prev) { 70 | if (idx == sz(s)) return 0; 71 | int &ret = dp[idx][prev]; 72 | if (ret != -1) return ret; 73 | int cur = s[idx] - 'a'; 74 | ret = solve(idx + 1, prev) + 1; 75 | 76 | if (!forb[prev][cur]) 77 | ret = min(ret, solve(idx + 1, cur)); 78 | 79 | return ret; 80 | } 81 | 82 | int main() { 83 | PLAY(); 84 | 85 | cin >> s; 86 | int m; cin >> m; 87 | while (m--) { 88 | string x; 89 | cin >> x; 90 | forb[x[0] - 'a'][x[1] - 'a'] = true; 91 | forb[x[1] - 'a'][x[0] - 'a'] = true; 92 | } 93 | 94 | memset(dp, -1, sizeof dp); 95 | cout << solve(0, 27) << endl; 96 | 97 | return 0; 98 | } 99 | -------------------------------------------------------------------------------- /Codeforces/CF157-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int a[100005], cnt[100005]; 65 | 66 | int main() { 67 | PLAY(); 68 | 69 | int n, m; 70 | cin >> n >> m; 71 | int neg = 0; 72 | for (int i = 0; i < n; i++) { 73 | cin >> a[i]; 74 | if (a[i] > 0) cnt[a[i]]++; 75 | else cnt[-a[i]]--, neg++; 76 | } 77 | 78 | int res = 0; 79 | for (int i = 1; i <= n; i++) 80 | res += cnt[i] == m - neg; 81 | 82 | for (int i = 0; i < n; i++) { 83 | if (cnt[abs(a[i])] + neg != m) 84 | cout << (a[i] > 0 ? "Lie" : "Truth") << endl; 85 | else if (res == 1) 86 | cout << (a[i] > 0 ? "Truth" : "Lie") << endl; 87 | else 88 | cout << "Not defined" << endl; 89 | } 90 | 91 | return 0; 92 | } 93 | -------------------------------------------------------------------------------- /Codeforces/CF223-D1-B.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) (int)v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 54 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 55 | 56 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 57 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 58 | 59 | void PLAY() { 60 | #ifndef ONLINE_JUDGE 61 | freopen("input.txt", "r", stdin); 62 | freopen("output.txt", "w", stdout); 63 | #endif 64 | cout << fixed << setprecision(1); 65 | ios::sync_with_stdio(0); 66 | cin.tie(0); 67 | cout.tie(0); 68 | } 69 | 70 | 71 | int L[200005], R[200005], pre[26]; 72 | 73 | int main() { 74 | PLAY(); 75 | 76 | string s, t; 77 | cin >> s >> t; 78 | for (int i = 0, j = 0; i < sz(s); i++) { 79 | if (s[i] == t[j]) { 80 | L[i] = ++j; 81 | pre[s[i] - 'a'] = j; 82 | } 83 | else 84 | L[i] = pre[s[i] - 'a']; 85 | } 86 | for (int i = sz(s) - 1; i >= 0; i--) 87 | R[i] = R[i + 1] + (R[i + 1] < sz(t) && t[sz(t) - 1 - R[i + 1]] == s[i]); 88 | 89 | for (int i = 0; i < sz(s); i++) { 90 | if (!L[i] || L[i] + R[i + 1] < sz(t)) { 91 | cout << "No" << endl; 92 | return 0; 93 | } 94 | } 95 | cout << "Yes" << endl; 96 | 97 | return 0; 98 | } 99 | -------------------------------------------------------------------------------- /Codeforces/CF255-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | ll n, x, y, c; 67 | 68 | bool valid(ll t) { 69 | ll left = max(1LL, y - t); 70 | ll right = min(n, y + t); 71 | ll cnt = 0; 72 | for (ll i = left; i <= right; i++) { 73 | ll tmp = t - abs(y - i); 74 | ll up = max(1LL, x - tmp); 75 | ll down = min(n, x + tmp); 76 | cnt += down - up + 1; 77 | if (cnt >= c) return true; 78 | } 79 | return false; 80 | } 81 | 82 | int main() { 83 | PLAY(); 84 | 85 | cin >> n >> x >> y >> c; 86 | if (c == 1) cout << 0 << endl; 87 | else { 88 | ll lo = 1, hi = 1e18, res = 0; 89 | while (lo <= hi) { 90 | ll mid = (lo + hi) / 2; 91 | if (valid(mid)) { 92 | res = mid; 93 | hi = mid - 1; 94 | } 95 | else lo = mid + 1; 96 | } 97 | cout << res << endl; 98 | } 99 | return 0; 100 | } 101 | -------------------------------------------------------------------------------- /Codeforces/CF257-D2-C.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int main() { 65 | PLAY(); 66 | 67 | int n; 68 | cin >> n; 69 | vector v(n); 70 | for (int i = 0; i < n; i++) { 71 | int x, y; 72 | cin >> x >> y; 73 | v[i] = (atan2(y, x) * 360) / (2 * PI); 74 | } 75 | sortva(v); 76 | double res = (v.back() - v.front()); 77 | for (int i = 0; i < n - 1; i++) 78 | res = min(res, 360 - (v[i + 1] - v[i])); 79 | cout << res << endl; 80 | 81 | return 0; 82 | } 83 | -------------------------------------------------------------------------------- /Codeforces/CF257-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int n; 69 | cin >> n; 70 | vector v(n); 71 | for (int i = 0; i < n; i++) 72 | cin >> v[i]; 73 | 74 | int sum = 0; 75 | string res = ""; 76 | for (int i = n - 1; i >= 0; i--) { 77 | if (sum > 0) { 78 | sum -= v[i]; 79 | res += "-"; 80 | } 81 | else { 82 | sum += v[i]; 83 | res += "+"; 84 | } 85 | } 86 | for (int i = n - 1; i >= 0 && sum < 0; i--) 87 | res[i] = res[i] == '+' ? '-' : '+'; 88 | reverse(all(res)); 89 | cout << res << endl; 90 | 91 | return 0; 92 | } 93 | -------------------------------------------------------------------------------- /Codeforces/CF265-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int dp[100005]; 66 | int main() { 67 | PLAY(); 68 | 69 | int n; 70 | int a[100005]; 71 | cin >> n; 72 | for (int i = 0; i < n; i++) 73 | cin >> a[i]; 74 | 75 | int res = 0; 76 | for (int i = 0; i < n; i++) { 77 | vector div; 78 | if (a[i] > 1) div.push_back(a[i]); 79 | for (int j = 2; j * j <= a[i]; j++) { 80 | if (a[i] % j == 0) { 81 | div.push_back(j); 82 | if (j * j != a[i]) 83 | div.push_back(a[i] / j); 84 | } 85 | } 86 | int tmp = 0; 87 | for (int j = 0; j < sz(div); j++) 88 | tmp = max(tmp, dp[div[j]] + 1); 89 | res = max(res, tmp) + bool(a[i] == 1); 90 | for (int j = 0; j < sz(div); j++) 91 | dp[div[j]] = max(dp[div[j]], tmp); 92 | } 93 | cout << res << endl; 94 | return 0; 95 | } 96 | -------------------------------------------------------------------------------- /Codeforces/CF270-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | 66 | int a[5005], n; 67 | int dp[5005][5005]; 68 | 69 | int solve(int idx, int prev) { 70 | if (idx == n) return 0; 71 | int &ret = dp[idx][prev]; 72 | if (ret != -1) return ret; 73 | ret = solve(idx + 1, prev); 74 | if (a[idx] >= a[prev]) 75 | ret = max(ret, 1 + solve(idx + 1, idx)); 76 | return ret; 77 | } 78 | int main() { 79 | PLAY(); 80 | 81 | int m; 82 | cin >> n >> m; 83 | double tmp; 84 | for (int i = 0; i < n; i++) 85 | cin >> a[i] >> tmp; 86 | 87 | memset(dp, -1, sizeof dp); 88 | 89 | cout << n - solve(0, n + 1) << endl; 90 | 91 | return 0; 92 | } 93 | -------------------------------------------------------------------------------- /Codeforces/CF284-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int n, a[200005]; 65 | 66 | ll dp[200005][2]; 67 | int vis[200005][2]; 68 | int cur_dfs; 69 | 70 | ll dfs(int node, bool flag) { 71 | if (node > n || node <= 0) return 0; 72 | if (vis[node][flag] == cur_dfs) return -1; 73 | vis[node][flag] = cur_dfs; 74 | ll &ret = dp[node][flag]; 75 | if (ret != 0) return ret; 76 | if(flag) ret = dfs(node + a[node], !flag); 77 | else ret = dfs(node - a[node], !flag); 78 | if (ret > -1) ret += a[node]; 79 | return ret; 80 | } 81 | 82 | int main() { 83 | PLAY(); 84 | 85 | cin >> n; 86 | for (int i = 2; i <= n; i++) 87 | cin >> a[i]; 88 | 89 | for (int i = 1; i < n; i++) { 90 | cur_dfs++; 91 | a[1] = i; 92 | dp[1][1] = 0; 93 | cout << max(-1LL, dfs(1, 1)) << "\n"; 94 | } 95 | 96 | 97 | return 0; 98 | } 99 | -------------------------------------------------------------------------------- /Codeforces/CF296-D2-C.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | #define PI 3.14159265359 29 | #define all(v) v.begin(),v.end() 30 | #define sortva(v) sort(all(v)) 31 | #define sortvd(v) sort(v.rbegin(),v.rend()) 32 | #define sortaa(first,n) sort(first,first+n) 33 | #define sortad(first,n) sort(first,first+n),reverse(first,first+n) 34 | #define sfi1(v) scanf("%dist",&v) 35 | #define sfi2(v1,v2) scanf("%dist %dist",&v1,&v2) 36 | #define sfi3(v1,v2,v3) scanf("%dist %dist %dist",&v1,&v2,&v3) 37 | #define sfll1(v) scanf("%I64d",&v); 38 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 39 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 40 | #define sfstr(v) scanf("%sum", v); 41 | #define sz(v) (int)v.size() 42 | #define ndl puts("") 43 | #define flush fflush(stdout) 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | typedef long double ld; 48 | 49 | int di[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 50 | int dj[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 51 | 52 | ll gcd(ll first, ll second) { return !second ? first : gcd(second, first % second); } 53 | ll lcm(ll first, ll second) { return (first / gcd(first, second)) * second; } 54 | 55 | void PLAY() { 56 | #ifndef ONLINE_JUDGE 57 | freopen("input.txt", "r", stdin); 58 | freopen("output.txt", "w", stdout); 59 | #endif 60 | 61 | cout << fixed << setprecision(5); 62 | ios::sync_with_stdio(0); 63 | cin.tie(0); 64 | cout.tie(0); 65 | } 66 | 67 | const int MAX = 1e5 + 10; 68 | ll pre1[MAX], pre2[MAX]; 69 | 70 | int a[MAX], l[MAX], r[MAX]; 71 | ll d[MAX]; 72 | 73 | int main() { 74 | PLAY(); 75 | 76 | int n, m, k; 77 | cin >> n >> m >> k; 78 | 79 | for (int i = 0; i < n; i++) 80 | cin >> a[i]; 81 | 82 | for (int i = 0; i < m; i++) { 83 | cin >> l[i] >> r[i] >> d[i]; 84 | l[i]--; r[i]--; 85 | } 86 | while (k--) { 87 | int l, r; 88 | cin >> l >> r; 89 | l--; r--; 90 | pre1[l]++; 91 | pre1[r + 1]--; 92 | } 93 | 94 | for (int i = 1; i < m; i++) 95 | pre1[i] += pre1[i - 1]; 96 | 97 | for (int i = 0; i < m; i++) { 98 | d[i] *= pre1[i]; 99 | pre2[l[i]] += d[i]; 100 | pre2[r[i] + 1] -= d[i]; 101 | } 102 | 103 | for (int i = 1; i < n; i++) 104 | pre2[i] += pre2[i - 1]; 105 | 106 | for (int i = 0; i < n; i++) 107 | cout << a[i] + pre2[i] << " "; 108 | 109 | return 0; 110 | } 111 | -------------------------------------------------------------------------------- /Codeforces/CF318-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int res[1005][1005]; 65 | 66 | int main() { 67 | PLAY(); 68 | 69 | int n, t; 70 | cin >> n >> t; 71 | queue> qu; 72 | qu.push({ 0, 0 }); 73 | res[300][300] = n; 74 | while (sz(qu)) { 75 | int curx = qu.front().first; 76 | int cury = qu.front().second; 77 | qu.pop(); 78 | if (res[curx + 300][cury + 300] < 4) continue; 79 | for (int k = 0; k < 4; k++) { 80 | int tox = dx[k] + curx; 81 | int toy = dy[k] + cury; 82 | res[tox + 300][toy + 300] += res[curx + 300][cury + 300] / 4; 83 | if (res[tox + 300][toy + 300] >= 4) 84 | qu.push({ tox, toy }); 85 | } 86 | res[curx + 300][cury + 300] %= 4; 87 | } 88 | 89 | while (t--) { 90 | int x, y; 91 | cin >> x >> y; 92 | if (abs(x) >= 300 || abs(y) >= 300) 93 | cout << 0 << endl; 94 | else 95 | cout << res[x + 300][y + 300] << endl; 96 | } 97 | return 0; 98 | } 99 | -------------------------------------------------------------------------------- /Codeforces/CF340-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int n; 65 | int arr[100005]; 66 | 67 | int idx(vector &a, int l, int r, int val) { 68 | while (r - l > 1) { 69 | int mid = l + (r - l) / 2; 70 | if (a[mid] >= val) r = mid; 71 | else l = mid; 72 | } 73 | return r; 74 | } 75 | 76 | int LIS() { 77 | vector v(n, 0); 78 | int ret = 1; 79 | v[0] = arr[0]; 80 | for (int i = 1; i < n; i++) { 81 | if (arr[i] < v[0]) 82 | v[0] = arr[i]; 83 | else if (arr[i] > v[ret - 1]) 84 | v[ret++] = arr[i]; 85 | else 86 | v[idx(v, -1, ret - 1, arr[i])] = arr[i]; 87 | } 88 | 89 | return ret; 90 | } 91 | 92 | int main() { 93 | PLAY(); 94 | 95 | cin >> n; 96 | for (int i = 0; i < n; i++) 97 | cin >> arr[i]; 98 | cout << LIS() << endl; 99 | 100 | return 0; 101 | } 102 | -------------------------------------------------------------------------------- /Codeforces/CF344-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | string s; 69 | cin >> s; 70 | stack st; 71 | for (int i = 0; i < sz(s); i++) { 72 | if (sz(st) && s[i] == st.top()) 73 | st.pop(); 74 | else 75 | st.push(s[i]); 76 | } 77 | cout << (sz(st) ? "No" : "Yes") << endl; 78 | 79 | return 0; 80 | } 81 | -------------------------------------------------------------------------------- /Codeforces/CF358-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int n; 66 | int a[3005], b[3005], c[3005]; 67 | int dp[3005][2]; 68 | 69 | int solve(int i, int t) { 70 | if (i == n - 1) { 71 | if (t) return b[i]; 72 | return a[i]; 73 | } 74 | int &ret = dp[i][t]; 75 | if (ret != -1) return ret; 76 | if (t) ret = max(b[i] + solve(i + 1, 1), c[i] + solve(i + 1, 0)); 77 | else ret = max(a[i] + solve(i + 1, 1), b[i] + solve(i + 1, 0)); 78 | return ret; 79 | } 80 | 81 | int main() { 82 | PLAY(); 83 | 84 | cin >> n; 85 | for (int i = 0; i < n; i++) 86 | cin >> a[i]; 87 | for (int i = 0; i < n; i++) 88 | cin >> b[i]; 89 | for (int i = 0; i < n; i++) 90 | cin >> c[i]; 91 | 92 | memset(dp, -1, sizeof dp); 93 | cout << solve(0, 0) << endl; 94 | 95 | return 0; 96 | } -------------------------------------------------------------------------------- /Codeforces/CF363-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int main() { 65 | PLAY(); 66 | 67 | int n, m, a; 68 | cin >> n >> m >> a; 69 | vector b(n), p(m); 70 | for (int i = 0; i < n; i++) 71 | cin >> b[i]; 72 | for (int i = 0; i < m; i++) 73 | cin >> p[i]; 74 | sortva(b); 75 | sortva(p); 76 | int lo = 0, hi = min(n, m); 77 | int res = 0, cost = 0; 78 | while (lo <= hi) { 79 | int mid = (lo + hi) / 2; 80 | ll need = 0, sum = 0; 81 | for (int i = mid - 1, j = n - 1; i >= 0; i--, j--) { 82 | need += max(0, p[i] - b[j]); 83 | sum += p[i]; 84 | } 85 | if (need <= a) { 86 | res = mid; 87 | cost = max(0LL, sum - a); 88 | lo = mid + 1; 89 | } 90 | else 91 | hi = mid - 1; 92 | } 93 | cout << res << " " << cost << endl; 94 | 95 | return 0; 96 | } 97 | -------------------------------------------------------------------------------- /Codeforces/CF365-D2-C.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int main() { 65 | PLAY(); 66 | 67 | int a; 68 | cin >> a; 69 | string s; 70 | cin >> s; 71 | map mp; 72 | ll sum = 0; 73 | for (int i = 0; i < sz(s); i++) { 74 | sum = 0; 75 | for (int j = i; j < sz(s); j++) { 76 | sum += s[j] - '0'; 77 | mp[sum]++; 78 | } 79 | } 80 | 81 | ll res = 0; 82 | 83 | for (int i = 0; i < sz(s); i++) { 84 | sum = 0; 85 | for (int j = i; j < sz(s); j++) { 86 | sum += s[j] - '0'; 87 | if (sum && a % sum == 0) 88 | res += mp[a / sum]; 89 | else if (a + sum == 0) 90 | res += ((ll)sz(s) * (sz(s) + 1)) / 2; 91 | } 92 | } 93 | cout << res << endl; 94 | 95 | return 0; 96 | } 97 | -------------------------------------------------------------------------------- /Codeforces/CF408-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | const int MOD = 1e9 + 7; 66 | 67 | int main() { 68 | PLAY(); 69 | 70 | int n, a[1005], dp[1005] = { 0 }; 71 | cin >> n; 72 | for (int i = 0; i < n; i++) 73 | cin >> a[i], a[i]--; 74 | 75 | int res = 0; 76 | for (int i = 0; i < n; i++) { 77 | dp[i] = 2; 78 | for (int j = a[i]; j < i; j++) 79 | dp[i] = (dp[i] + dp[j]) % MOD; 80 | res = (res + dp[i]) % MOD; 81 | } 82 | 83 | cout << res << endl; 84 | 85 | return 0; 86 | } 87 | -------------------------------------------------------------------------------- /Codeforces/CF418-D1-B.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | ll dp[1 << 21]; 67 | 68 | int main() { 69 | PLAY(); 70 | 71 | ll n, m, b; 72 | cin >> n >> m >> b; 73 | vector>> v(n); 74 | for (int i = 0; i < n; i++) { 75 | cin >> v[i].second.first >> v[i].first; 76 | int m; cin >> m; 77 | int mask = 0; 78 | while (m--) { 79 | int x; cin >> x; 80 | x--; 81 | mask |= (1 << x); 82 | } 83 | v[i].second.second = mask; 84 | } 85 | sortva(v); 86 | for (int i = 0; i < (1 << m); i++) 87 | dp[i] = 4e18; 88 | dp[0] = 0; 89 | ll res = 4e18; 90 | for (int i = 0; i < n; i++) { 91 | for (int j = 0; j < (1 << m); j++) { 92 | dp[j | v[i].second.second] = min(dp[j | v[i].second.second], 93 | dp[j] + v[i].second.first); 94 | } 95 | ll cur = dp[(1 << m) - 1]; 96 | cur += v[i].first * b; 97 | res = min(cur, res); 98 | } 99 | if (res == 4e18) res = -1; 100 | cout << res << endl; 101 | 102 | return 0; 103 | } 104 | -------------------------------------------------------------------------------- /Codeforces/CF431-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | ll nCr[70][70]; 66 | 67 | ll get(ll x, ll k) { 68 | if (k == 0) return x == 0; 69 | if (x == 0) return 0; 70 | bitset<70> st = x; 71 | string s = st.to_string(); 72 | s = s.substr(s.find('1'), sz(s)); 73 | int cnt = sz(s) - 1; 74 | return nCr[cnt][k] + get(x - (1ll << cnt), k - 1); 75 | } 76 | 77 | int main() { 78 | PLAY(); 79 | 80 | 81 | nCr[0][0] = 1; 82 | for (int i = 1; i < 70; i++) { 83 | nCr[i][0] = nCr[i][i] = 1; 84 | for (int j = 1; j < i; j++) 85 | nCr[i][j] = nCr[i - 1][j] + nCr[i - 1][j - 1]; 86 | } 87 | 88 | ll m, k; 89 | cin >> m >> k; 90 | ll lo = 1, hi = 1e18; 91 | while (lo <= hi) { 92 | ll mid = (lo + hi) / 2; 93 | ll cnt = get(mid * 2, k) - get(mid, k); 94 | if (cnt == m) { 95 | cout << mid << endl; 96 | return 0; 97 | } 98 | if (cnt > m) 99 | hi = mid - 1; 100 | else 101 | lo = mid + 1; 102 | } 103 | 104 | return 0; 105 | } 106 | -------------------------------------------------------------------------------- /Codeforces/CF448-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | 67 | 68 | int main() { 69 | PLAY(); 70 | 71 | 72 | ll n, m, k; 73 | cin >> n >> m >> k; 74 | 75 | ll lo = 1, hi = 1e15, res = 0; 76 | while (lo <= hi) { 77 | ll mid = (lo + hi) / 2; 78 | ll cnt = 0; 79 | for (int i = 1; i <= n; i++) 80 | cnt += min(m, mid / i); 81 | if (cnt >= k) { 82 | res = mid; 83 | hi = mid - 1; 84 | } 85 | else 86 | lo = mid + 1; 87 | } 88 | 89 | cout << res << endl; 90 | 91 | return 0; 92 | } 93 | -------------------------------------------------------------------------------- /Codeforces/CF471-D2-C.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | ll n; 69 | cin >> n; 70 | ll res = 0; 71 | for (ll i = 1; (3 * i * (i + 1) / 2) - i <= n; i++) 72 | res += (i + n) % 3 == 0; 73 | 74 | cout << res << endl; 75 | 76 | return 0; 77 | } 78 | -------------------------------------------------------------------------------- /Codeforces/CF476-D2-D.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Number theory, Constructive Algorithms 5 | 6 | Idea: 7 | - If we get a set of rank 1 and multiply it by k then we will get the answer 8 | - We can get a set of rank 1 by this {(6*i + 1), (6*i + 2), (6*i + 3), (6*i + 5)} 9 | - k will equal (6*n - 1)*k 10 | */ 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | using namespace std; 37 | 38 | #define PI 3.14159265359 39 | #define all(v) v.begin(),v.end() 40 | #define sortva(v) sort(all(v)) 41 | #define sortvd(v) sort(v.rbegin(),v.rend()) 42 | #define sortaa(a,n) sort(a,a+n) 43 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 44 | #define sfi1(v) scanf("%d",&v) 45 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 46 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 47 | #define sfll1(v) scanf("%I64d",&v); 48 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 49 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 50 | #define sfstr(v) scanf("%s", v); 51 | #define sz(v) (int)v.size() 52 | #define ndl puts("") 53 | #define SS stringstream 54 | typedef long long ll; 55 | typedef unsigned long long ull; 56 | typedef long double ld; 57 | 58 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 59 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 60 | 61 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 62 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 63 | 64 | void PLAY() { 65 | #ifndef ONLINE_JUDGE 66 | freopen("input.txt", "r", stdin); 67 | freopen("output.txt", "w", stdout); 68 | #endif 69 | cout << fixed << setprecision(10); 70 | ios::sync_with_stdio(0); 71 | cin.tie(0); 72 | cout.tie(0); 73 | } 74 | 75 | int main() { 76 | PLAY(); 77 | 78 | int n, k; 79 | cin >> n >> k; 80 | cout << (6*n - 1) * k << endl; 81 | for (int i = 0; i < n; i++) 82 | cout << (6 * i + 1)* k << " " << (6 * i + 2)*k << " " << (6 * i + 3)*k << " " << (6 * i + 5)*k << "\n"; 83 | 84 | return 0; 85 | } 86 | -------------------------------------------------------------------------------- /Codeforces/CF519-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int a[26]; 69 | for (int i = 0; i < 26; i++) 70 | cin >> a[i]; 71 | string s; 72 | cin >> s; 73 | ll res = 0, sum = 0; 74 | map mp[26]; 75 | for (int i = 0; i < sz(s); i++) { 76 | res += mp[s[i] - 'a'][sum]; 77 | sum += a[s[i] - 'a']; 78 | mp[s[i] - 'a'][sum]++; 79 | } 80 | cout << res << endl; 81 | 82 | return 0; 83 | } 84 | -------------------------------------------------------------------------------- /Codeforces/CF534-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | vector a[200005]; 65 | 66 | int main() { 67 | PLAY(); 68 | 69 | int n; 70 | cin >> n; 71 | vector v(n); 72 | set> st; 73 | for (int i = 0; i < n; i++) { 74 | cin >> v[i]; 75 | a[v[i]].push_back(i + 1); 76 | } 77 | 78 | int sum = 0; 79 | vector res; 80 | set>::iterator it; 81 | for (int i = 0; i < n; i++) { 82 | if (sz(a[sum]) == 0) { 83 | cout << "Impossible" << endl; 84 | return 0; 85 | } 86 | res.push_back(a[sum].back()); 87 | a[sum].pop_back(); 88 | sum++; 89 | int teams = 0; 90 | while (sum - teams >= 0) { 91 | if (sz(a[sum - teams])) { 92 | sum -= teams; 93 | break; 94 | } 95 | teams += 3; 96 | } 97 | } 98 | 99 | if (sz(res) != n) 100 | cout << "Impossible" << endl; 101 | else { 102 | cout << "Possible" << endl; 103 | for (auto e : res) 104 | cout << e << " "; 105 | } 106 | return 0; 107 | } 108 | -------------------------------------------------------------------------------- /Codeforces/CF535-D2-C.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | ll a, b, n; 64 | ll l, t, m; 65 | 66 | 67 | bool valid(ll x) { 68 | if (a + (x - 1) * b > t) return 0; 69 | ll tmp = (x * (x - 1)) / 2; 70 | tmp -= ((l - 1) * (l - 2)) / 2; 71 | tmp = a * (x - l + 1) + tmp*b; 72 | return tmp <= m * t; 73 | } 74 | 75 | int main() { 76 | PLAY(); 77 | 78 | cin >> a >> b >> n; 79 | while (n--) { 80 | cin >> l >> t >> m; 81 | if (a + (l - 1) * b > t) 82 | cout << -1 << endl; 83 | else { 84 | ll lo = l, hi = m * t * 10, res = l; 85 | while (lo <= hi) { 86 | ll mid = (lo + hi) / 2; 87 | if (valid(mid)) { 88 | res = mid; 89 | lo = mid + 1; 90 | } 91 | else 92 | hi = mid - 1; 93 | } 94 | cout << res << endl; 95 | } 96 | } 97 | 98 | return 0; 99 | } 100 | -------------------------------------------------------------------------------- /Codeforces/CF548-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int a[200005], l[200005], r[200005], ans[200005]; 66 | 67 | int main() { 68 | PLAY(); 69 | 70 | int n; 71 | cin >> n; 72 | fill(l, l + 200005, -1); 73 | fill(r, r + 200005, n); 74 | for (int i = 0; i < n; i++) 75 | cin >> a[i]; 76 | 77 | stack st; 78 | 79 | for (int i = 0; i < n; i++) { 80 | while (sz(st) && a[st.top()] >= a[i]) 81 | st.pop(); 82 | if (sz(st)) l[i] = st.top(); 83 | st.push(i); 84 | } 85 | while (sz(st)) st.pop(); 86 | 87 | for (int i = n - 1; i >= 0; i--){ 88 | while (sz(st) && a[st.top()] >= a[i]) 89 | st.pop(); 90 | if (sz(st)) r[i] = st.top(); 91 | st.push(i); 92 | } 93 | 94 | for (int i = 0; i < n; i++) { 95 | int len = r[i] - l[i] - 1; 96 | ans[len] = max(ans[len], a[i]); 97 | } 98 | for (int i = n; i >= 1; i--) 99 | ans[i] = max(ans[i], ans[i + 1]); 100 | for (int i = 1; i <= n; i++) 101 | cout << ans[i] << " "; 102 | 103 | return 0; 104 | } 105 | -------------------------------------------------------------------------------- /Codeforces/CF560-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | cout << fixed << setprecision(10); 60 | ios::sync_with_stdio(0); 61 | cin.tie(0); 62 | cout.tie(0); 63 | } 64 | 65 | 66 | string solve(string s) { 67 | if (sz(s) % 2) return s; 68 | string first = solve(s.substr(0, sz(s) / 2)); 69 | string second = solve(s.substr(sz(s) / 2, sz(s))); 70 | return min(first, second) + max(first, second); 71 | } 72 | 73 | int main() { 74 | PLAY(); 75 | 76 | string a, b; 77 | cin >> a >> b; 78 | 79 | if (solve(a) == solve(b)) 80 | cout << "YES" << endl; 81 | else 82 | cout << "NO" << endl; 83 | 84 | return 0; 85 | } 86 | -------------------------------------------------------------------------------- /Codeforces/CF567-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | set> ranges; 69 | int n, k, a; 70 | cin >> n >> k >> a; 71 | ranges.insert({ 1, n }); 72 | int cur = (n + 1) / (a + 1); 73 | int m; cin >> m; 74 | for (int i = 1; i <= m; i++) { 75 | int x; cin >> x; 76 | set>::iterator it = ranges.upper_bound({ x, INT_MAX }); 77 | if (it == ranges.begin()) { 78 | cout << i << endl; 79 | return 0; 80 | } 81 | it--; 82 | cur -= (it->second - it->first + 2) / (a + 1); 83 | pair first = { it->first, x - 1 }; 84 | pair second = { x + 1, it->second }; 85 | cur += (first.second - first.first + 2) / (a + 1); 86 | cur += (second.second - second.first + 2) / (a + 1); 87 | if (cur < k) { 88 | cout << i << endl; 89 | return 0; 90 | } 91 | ranges.erase(it); 92 | ranges.insert(first); 93 | ranges.insert(second); 94 | } 95 | 96 | cout << -1 << endl; 97 | return 0; 98 | } 99 | -------------------------------------------------------------------------------- /Codeforces/CF58-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int n; 69 | cin >> n; 70 | vector> v(n), with_s(n); 71 | int total_length = 0; 72 | for (int i = 0; i < n; i++) { 73 | cin >> v[i].first; 74 | v[i].second = i; 75 | total_length += sz(v[i].first); 76 | } 77 | char s; 78 | cin >> s; 79 | for (int i = 0; i < n; i++) { 80 | with_s[i] = v[i]; 81 | with_s[i].first += s; 82 | } 83 | sortva(v); 84 | sortva(with_s); 85 | int N = n; 86 | n /= 2; 87 | int line_length = total_length / n; 88 | line_length++; 89 | int vis[10005] = { 0 }; 90 | while(n--) { 91 | int idx = 0; 92 | while (idx < N && vis[with_s[idx].second]) idx++; 93 | vis[with_s[idx].second] = true; 94 | cout << with_s[idx].first; 95 | int idx2 = 0; 96 | for (; idx2 < N; idx2++) { 97 | if (!vis[v[idx2].second] && (sz(v[idx2].first) + sz(with_s[idx].first) == line_length)) 98 | break; 99 | } 100 | vis[v[idx2].second] = true; 101 | cout << v[idx2].first << endl; 102 | } 103 | 104 | return 0; 105 | } -------------------------------------------------------------------------------- /Codeforces/CF606-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int n, m; 69 | cin >> n >> m; 70 | vector, int>> edges(m); 71 | 72 | for (int i = 0; i < m; i++) { 73 | cin >> edges[i].first.first; 74 | cin >> edges[i].first.second; 75 | edges[i].second = i; 76 | edges[i].first.second *= -1; 77 | } 78 | 79 | sortva(edges); 80 | vector> res(m); 81 | int p1 = 2, p2 = 3, p3 = 2; 82 | for (int i = 0; i < m; i++) { 83 | if (edges[i].first.second) 84 | res[edges[i].second] = { 1, p1++ }; 85 | else { 86 | if (p3 == 1) { 87 | p2++; 88 | p3 = p2 - 1; 89 | } 90 | if (p2 >= p1 || p3 == 1) { 91 | cout << -1 << endl; 92 | return 0; 93 | } 94 | res[edges[i].second] = { p2, p3 }; 95 | p3--; 96 | } 97 | } 98 | for (int i = 0; i < m; i++) 99 | cout << res[i].first << " " << res[i].second << endl; 100 | 101 | return 0; 102 | } -------------------------------------------------------------------------------- /Codeforces/CF682-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | string s, t; 65 | int n, m, k; 66 | int dp[1005][1005][2][11]; 67 | 68 | int solve(int s_idx, int t_idx, bool prev, int k) { 69 | if (k == 0) return 0; 70 | if (s_idx == n || t_idx == m) { 71 | if (prev) k--; 72 | if (k == 0) return 0; 73 | return -1e3; 74 | } 75 | int &ret = dp[s_idx][t_idx][prev][k]; 76 | if (ret != -1) return ret; 77 | if (prev) 78 | ret = solve(s_idx, t_idx, 0, k - 1); 79 | else 80 | ret = max(solve(s_idx + 1, t_idx, 0, k), solve(s_idx, t_idx + 1, 0, k)); 81 | if (s[s_idx] == t[t_idx]) 82 | ret = max(ret, solve(s_idx + 1, t_idx + 1, 1, k) + 1); 83 | return ret; 84 | } 85 | 86 | int main() { 87 | PLAY(); 88 | 89 | cin >> n >> m >> k; 90 | cin >> s >> t; 91 | 92 | memset(dp, -1, sizeof dp); 93 | cout << solve(0, 0, 0, k) << endl; 94 | 95 | return 0; 96 | } 97 | -------------------------------------------------------------------------------- /Codeforces/CF701-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int main() { 65 | PLAY(); 66 | 67 | int n, l, v1, v2, k; 68 | cin >> n >> l >> v1 >> v2 >> k; 69 | 70 | double lo = 0, hi = 1e18; 71 | for (int x = 0; x < 500; x++) { 72 | double mid = (lo + hi) / 2.0; 73 | double dist = l - mid * v1; 74 | double t1 = dist / (v2 - v1), t2 = dist / (v2 + v1), t = 0; 75 | for (int i = 0; i < n; i += k) 76 | t += (i + k < n) ? t1 + t2 : t1; 77 | if (t < mid) hi = mid; 78 | else lo = mid; 79 | } 80 | cout << (lo + hi) / 2 << endl; 81 | 82 | return 0; 83 | } 84 | -------------------------------------------------------------------------------- /Codeforces/CF721-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int n, k, x; 69 | cin >> n >> k >> x; 70 | vector v(n); 71 | for (int i = 0; i < n; i++) 72 | cin >> v[i]; 73 | priority_queue> qu; 74 | int tmp = 1; 75 | for (int i = 0; i < n; i++){ 76 | if (v[i] < 0) tmp *= -1; 77 | qu.push({ -abs(v[i]), i }); 78 | } 79 | while (k--){ 80 | pair cur = qu.top(); 81 | qu.pop(); 82 | int s = tmp; 83 | if (v[cur.second] < 0) s *= -1; 84 | if (s == 1) v[cur.second] -= x; 85 | else v[cur.second] += x; 86 | tmp = s; 87 | if (v[cur.second] < 0) tmp *= -1; 88 | qu.push({ -abs(v[cur.second]), cur.second }); 89 | } 90 | for (auto e : v) 91 | cout << e << " "; 92 | 93 | return 0; 94 | } 95 | -------------------------------------------------------------------------------- /Codeforces/CF776-D2-C.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int n, k; 69 | cin >> n >> k; 70 | 71 | vector v(n); 72 | for (int i = 0; i < n; i++) 73 | cin >> v[i]; 74 | 75 | vector powers; 76 | powers.push_back(1); 77 | if (k == -1) 78 | powers.push_back(-1); 79 | else if (k != 1) { 80 | ll num = k; 81 | while (abs(num) <= 1e14) { 82 | powers.push_back(num); 83 | num *= k; 84 | } 85 | } 86 | map cnt; 87 | cnt[0] = 1; 88 | ll sum = 0, res = 0; 89 | 90 | for (int i = 0; i < n; i++) { 91 | sum += v[i]; 92 | for (int j = 0; j < sz(powers); j++) 93 | res += cnt[sum - powers[j]]; 94 | cnt[sum]++; 95 | } 96 | cout << res << endl; 97 | return 0; 98 | } 99 | -------------------------------------------------------------------------------- /Codeforces/CF812-D2-C.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | const int MAX = 1e5; 67 | int a[MAX]; 68 | 69 | int main() { 70 | PLAY(); 71 | 72 | int n, s; 73 | cin >> n >> s; 74 | for (int i = 0; i < n; i++) 75 | cin >> a[i]; 76 | 77 | ll lo = 0, hi = n, res = 0, mncost = 0; 78 | while (lo <= hi) { 79 | ll mid = (lo + hi) / 2; 80 | ll cost = 0; 81 | vector v(n); 82 | for (int i = 0; i < n; i++) 83 | v[i] = a[i] + (i + 1) * mid; 84 | sortva(v); 85 | for (int i = 0; i < mid; i++) 86 | cost += v[i]; 87 | if (cost <= s) { 88 | res = mid; 89 | mncost = cost; 90 | lo = mid + 1; 91 | } 92 | else 93 | hi = mid - 1; 94 | } 95 | 96 | cout << res << " " << mncost << endl; 97 | 98 | return 0; 99 | } 100 | -------------------------------------------------------------------------------- /Codeforces/CF84-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int n; 69 | ll k; 70 | cin >> n >> k; 71 | vector v(n); 72 | ll sum = 0; 73 | for (int i = 0; i < n; i++) { 74 | cin >> v[i]; 75 | sum += v[i]; 76 | } 77 | if (sum < k) { 78 | cout << -1 << endl; 79 | return 0; 80 | } 81 | 82 | ll lo = 0, hi = 1e14, res = 0; 83 | while (lo <= hi) { 84 | ll mid = (lo + hi) / 2; 85 | ll take = 0; 86 | for (int i = 0; i < n; i++) 87 | take += min(v[i], mid); 88 | if (take > k) 89 | hi = mid - 1; 90 | else 91 | lo = mid + 1, res = mid; 92 | } 93 | 94 | for (int i = 0; i < n; i++) 95 | k -= min(v[i], res); 96 | vector a, b; 97 | for (int i = 0; i < n; i++) { 98 | v[i] -= res; 99 | if (v[i] <= 0) continue; 100 | else { 101 | if (k) { 102 | k--; 103 | v[i]--; 104 | if (v[i] <= 0) continue; 105 | a.push_back(i + 1); 106 | } 107 | else 108 | b.push_back(i + 1); 109 | } 110 | } 111 | for (int e : b) 112 | cout << e << " "; 113 | for (int e : a) 114 | cout << e << " "; 115 | return 0; 116 | } -------------------------------------------------------------------------------- /Codeforces/CF909-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | vector> v; 69 | string s; 70 | cin >> s; 71 | for (int i = 0; i < sz(s); i++) { 72 | if (sz(v) && v.back().first == s[i]) v.back().second++; 73 | else v.push_back({ s[i], 1 }); 74 | } 75 | 76 | int res = 0; 77 | while (sz(v) > 1) { 78 | res++; 79 | vector> nw; 80 | for (int i = 0; i < sz(v); i++) { 81 | if (i == 0) v[i].second--; 82 | else if (i == sz(v) - 1) v[i].second--; 83 | else v[i].second -= 2; 84 | } 85 | for (int i = 0; i < sz(v); i++) { 86 | if (v[i].second <= 0) continue; 87 | if (sz(nw) && nw.back().first == v[i].first) nw.back().second += v[i].second; 88 | else nw.push_back(v[i]); 89 | } 90 | v = nw; 91 | } 92 | cout << res << endl; 93 | return 0; 94 | } 95 | -------------------------------------------------------------------------------- /Codeforces/CF930-D1-A.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(3); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | const int MAX = 1e5 + 5; 65 | 66 | 67 | int level[MAX]; 68 | 69 | vector adj[MAX]; 70 | 71 | void dfs(int node, int l) { 72 | level[l]++; 73 | for (auto v : adj[node]) 74 | dfs(v, l + 1); 75 | } 76 | 77 | 78 | int main() { 79 | PLAY(); 80 | 81 | int n; 82 | cin >> n; 83 | 84 | for (int i = 2; i <= n; i++) { 85 | int u; cin >> u; 86 | adj[u].push_back(i); 87 | } 88 | 89 | dfs(1, 1); 90 | 91 | int res = 0; 92 | for (int i = 1; i <= n; i++) 93 | res += level[i] % 2 == 1; 94 | 95 | cout << res << endl; 96 | 97 | return 0; 98 | } 99 | -------------------------------------------------------------------------------- /Codeforces/CF930-D1-B.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | vector v[27]; 65 | int a[26]; 66 | 67 | int main() { 68 | PLAY(); 69 | 70 | string s; 71 | cin >> s; 72 | string tmp = s; 73 | v[tmp[0] - 'a'].push_back(tmp); 74 | 75 | for (int i = 1; i < sz(s); i++) { 76 | tmp = tmp.back() + tmp.substr(0, sz(s) - 1); 77 | v[tmp[0] - 'a'].push_back(tmp); 78 | } 79 | 80 | ll tot = 0; 81 | 82 | for (int i = 0; i < 26; i++) { 83 | int cur = 0; 84 | for (int j = 0; j < sz(s); j++) { 85 | int tt = 0; 86 | memset(a, 0, sizeof a); 87 | for (int q = 0; q < sz(v[i]); q++) { 88 | if (a[v[i][q][j] - 'a'] == 0) 89 | tt++, a[v[i][q][j] - 'a'] = 1; 90 | else if (a[v[i][q][j] - 'a'] == 1) 91 | tt--, a[v[i][q][j] - 'a'] = 2; 92 | } 93 | cur = max(cur, tt); 94 | } 95 | tot += cur; 96 | } 97 | cout << (double)tot / sz(s) << endl; 98 | 99 | return 0; 100 | } 101 | -------------------------------------------------------------------------------- /Codeforces/CF939-D2-D.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(2); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | vector adj[27]; 66 | 67 | bool vis[27]; 68 | 69 | vector> cur; 70 | 71 | void dfs(int node) { 72 | if (vis[node]) return; 73 | vis[node] = true; 74 | for (int i = 0; i < sz(adj[node]); i++) { 75 | if (!vis[adj[node][i]]) { 76 | cur.push_back({ node, adj[node][i] }); 77 | dfs(adj[node][i]); 78 | } 79 | } 80 | } 81 | 82 | int main() { 83 | PLAY(); 84 | 85 | int n; 86 | cin >> n; 87 | string a, b; 88 | cin >> a >> b; 89 | for (int i = 0; i < n; i++) { 90 | if (a[i] != b[i]) { 91 | adj[a[i] - 'a'].push_back(b[i] - 'a'); 92 | adj[b[i] - 'a'].push_back(a[i] - 'a'); 93 | } 94 | } 95 | 96 | vector> res; 97 | for (int i = 0; i < 26; i++) { 98 | if (!vis[i]) { 99 | cur.clear(); 100 | dfs(i); 101 | for (auto e : cur) 102 | res.push_back(e); 103 | } 104 | } 105 | cout << sz(res) << endl; 106 | for (auto e : res) 107 | cout << char(e.first + 'a') << " " << char(e.second + 'a') << "\n"; 108 | 109 | return 0; 110 | } -------------------------------------------------------------------------------- /Codeforces/CF939-D2-E.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int main() { 65 | PLAY(); 66 | 67 | int q; 68 | cin >> q; 69 | vector v; 70 | ll sum = 0; 71 | int cnt = 0, idx = 0; 72 | while (q--) { 73 | int type; 74 | cin >> type; 75 | if (type == 1) { 76 | int x; 77 | cin >> x; 78 | if (sz(v)) { 79 | sum -= v.back(); 80 | cnt--; 81 | } 82 | v.push_back(x); 83 | sum += x; 84 | cnt++; 85 | while (v[idx] < (double)sum / cnt) { 86 | sum += v[idx++]; 87 | cnt++; 88 | } 89 | } 90 | else 91 | cout << v.back() - (double)sum / cnt << "\n"; 92 | } 93 | 94 | 95 | return 0; 96 | } -------------------------------------------------------------------------------- /Codeforces/CF954-D2-A.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | 67 | int main() { 68 | PLAY(); 69 | 70 | 71 | int n; 72 | string s; 73 | cin >> n >> s; 74 | for (int i = 0; i < sz(s) - 1; i++) { 75 | if (s[i] == '-') continue; 76 | if (s[i] == 'R' && s[i + 1] == 'U') { 77 | s[i] = 'D'; 78 | s[i + 1] = '-'; 79 | continue; 80 | } 81 | else if (s[i] == 'U' && s[i + 1] == 'R') { 82 | s[i] = 'D'; 83 | s[i + 1] = '-'; 84 | continue; 85 | } 86 | } 87 | int res = 0; 88 | for (auto e : s) 89 | res += e != '-'; 90 | cout << res << endl; 91 | 92 | return 0; 93 | } 94 | -------------------------------------------------------------------------------- /Codeforces/CF954-D2-B.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | int main() { 67 | PLAY(); 68 | 69 | int n; 70 | string s; 71 | 72 | cin >> n >> s; 73 | 74 | int cur = 0; 75 | for (int i = 1; i < n; i++) 76 | if (s.substr(0, i) == s.substr(i, i)) 77 | cur = i - 1; 78 | 79 | cout << n - cur << endl; 80 | 81 | return 0; 82 | } 83 | -------------------------------------------------------------------------------- /Codeforces/CF959-D2-A.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | #define PI 3.14159265359 29 | #define all(v) v.begin(),v.end() 30 | #define sortva(v) sort(all(v)) 31 | #define sortvd(v) sort(v.rbegin(),v.rend()) 32 | #define sortaa(first,n) sort(first,first+n) 33 | #define sortad(first,n) sort(first,first+n),reverse(first,first+n) 34 | #define sfi1(v) scanf("%dist",&v) 35 | #define sfi2(v1,v2) scanf("%dist %dist",&v1,&v2) 36 | #define sfi3(v1,v2,v3) scanf("%dist %dist %dist",&v1,&v2,&v3) 37 | #define sfll1(v) scanf("%I64d",&v); 38 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 39 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 40 | #define sfstr(v) scanf("%sum", v); 41 | #define sz(v) (int)v.size() 42 | #define ndl puts("") 43 | #define flush fflush(stdout) 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | typedef long double ld; 48 | 49 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 50 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 51 | 52 | ll gcd(ll first, ll second) { return !second ? first : gcd(second, first % second); } 53 | ll lcm(ll first, ll second) { return (first / gcd(first, second)) * second; } 54 | 55 | void PLAY() { 56 | #ifndef ONLINE_JUDGE 57 | freopen("input.txt", "r", stdin); 58 | freopen("output.txt", "w", stdout); 59 | #endif 60 | 61 | cout << fixed << setprecision(5); 62 | ios::sync_with_stdio(0); 63 | cin.tie(0); 64 | cout.tie(0); 65 | } 66 | 67 | int main() { 68 | PLAY(); 69 | 70 | int n; 71 | cin >> n; 72 | if (n % 2) 73 | cout << "Ehab" << endl; 74 | else 75 | cout << "Mahmoud" << endl; 76 | return 0; 77 | } 78 | -------------------------------------------------------------------------------- /Codeforces/CF959-D2-B.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | #define PI 3.14159265359 29 | #define all(v) v.begin(),v.end() 30 | #define sortva(v) sort(all(v)) 31 | #define sortvd(v) sort(v.rbegin(),v.rend()) 32 | #define sortaa(first,n) sort(first,first+n) 33 | #define sortad(first,n) sort(first,first+n),reverse(first,first+n) 34 | #define sfi1(v) scanf("%dist",&v) 35 | #define sfi2(v1,v2) scanf("%dist %dist",&v1,&v2) 36 | #define sfi3(v1,v2,v3) scanf("%dist %dist %dist",&v1,&v2,&v3) 37 | #define sfll1(v) scanf("%I64d",&v); 38 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 39 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 40 | #define sfstr(v) scanf("%sum", v); 41 | #define sz(v) (int)v.size() 42 | #define ndl puts("") 43 | #define flush fflush(stdout) 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | typedef long double ld; 48 | 49 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 50 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 51 | 52 | ll gcd(ll first, ll second) { return !second ? first : gcd(second, first % second); } 53 | ll lcm(ll first, ll second) { return (first / gcd(first, second)) * second; } 54 | 55 | void PLAY() { 56 | #ifndef ONLINE_JUDGE 57 | freopen("input.txt", "r", stdin); 58 | freopen("output.txt", "w", stdout); 59 | #endif 60 | 61 | cout << fixed << setprecision(5); 62 | ios::sync_with_stdio(0); 63 | cin.tie(0); 64 | cout.tie(0); 65 | } 66 | 67 | int main() { 68 | PLAY(); 69 | 70 | int n, k, m; 71 | cin >> n >> k >> m; 72 | vector v(n); 73 | map mp; 74 | for (int i = 0; i < n; i++) { 75 | cin >> v[i]; 76 | mp[v[i]]; 77 | } 78 | vector c(n); 79 | for (int i = 0; i < n; i++) 80 | cin >> c[i]; 81 | int type = 0; 82 | while (k--) { 83 | int x; 84 | cin >> x; 85 | while (x--) { 86 | int id; 87 | cin >> id; 88 | id--; 89 | mp[v[id]] = type; 90 | } 91 | type++; 92 | } 93 | map mn; 94 | for (int i = 0; i < n; i++) { 95 | if (mn.find(mp[v[i]]) == mn.end()) mn[mp[v[i]]] = c[i]; 96 | else mn[mp[v[i]]] = min(mn[mp[v[i]]], c[i]); 97 | } 98 | ll res = 0; 99 | for (int i = 0; i < m; i++) { 100 | string s; 101 | cin >> s; 102 | res += mn[mp[s]]; 103 | } 104 | cout << res << endl; 105 | return 0; 106 | } 107 | -------------------------------------------------------------------------------- /Codeforces/CF959-D2-C.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | #define PI 3.14159265359 29 | #define all(v) v.begin(),v.end() 30 | #define sortva(v) sort(all(v)) 31 | #define sortvd(v) sort(v.rbegin(),v.rend()) 32 | #define sortaa(first,n) sort(first,first+n) 33 | #define sortad(first,n) sort(first,first+n),reverse(first,first+n) 34 | #define sfi1(v) scanf("%dist",&v) 35 | #define sfi2(v1,v2) scanf("%dist %dist",&v1,&v2) 36 | #define sfi3(v1,v2,v3) scanf("%dist %dist %dist",&v1,&v2,&v3) 37 | #define sfll1(v) scanf("%I64d",&v); 38 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 39 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 40 | #define sfstr(v) scanf("%sum", v); 41 | #define sz(v) (int)v.size() 42 | #define ndl puts("") 43 | #define flush fflush(stdout) 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | typedef long double ld; 48 | 49 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 50 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 51 | 52 | ll gcd(ll first, ll second) { return !second ? first : gcd(second, first % second); } 53 | ll lcm(ll first, ll second) { return (first / gcd(first, second)) * second; } 54 | 55 | void PLAY() { 56 | #ifndef ONLINE_JUDGE 57 | freopen("input.txt", "r", stdin); 58 | freopen("output.txt", "w", stdout); 59 | #endif 60 | 61 | cout << fixed << setprecision(5); 62 | ios::sync_with_stdio(0); 63 | cin.tie(0); 64 | cout.tie(0); 65 | } 66 | 67 | int main() { 68 | PLAY(); 69 | 70 | int n; 71 | cin >> n; 72 | 73 | int rem = n - 2, nxt = 3; 74 | int first = rem / 2; 75 | int second = rem - first; 76 | 77 | 78 | if (min(1 + second, 1 + first) <= 2) { 79 | cout << -1 << endl; 80 | } 81 | else { 82 | cout << "1 2" << "\n"; 83 | while (first--) 84 | cout << 1 << " " << nxt++ << "\n"; 85 | while (second--) 86 | cout << 2 << " " << nxt++ << "\n"; 87 | } 88 | for (int i = 2; i <= n; i++) 89 | cout << 1 << " " << i << "\n"; 90 | 91 | return 0; 92 | } 93 | -------------------------------------------------------------------------------- /Codeforces/CF959-D2-E.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | #define PI 3.14159265359 29 | #define all(v) v.begin(),v.end() 30 | #define sortva(v) sort(all(v)) 31 | #define sortvd(v) sort(v.rbegin(),v.rend()) 32 | #define sortaa(first,n) sort(first,first+n) 33 | #define sortad(first,n) sort(first,first+n),reverse(first,first+n) 34 | #define sfi1(v) scanf("%dist",&v) 35 | #define sfi2(v1,v2) scanf("%dist %dist",&v1,&v2) 36 | #define sfi3(v1,v2,v3) scanf("%dist %dist %dist",&v1,&v2,&v3) 37 | #define sfll1(v) scanf("%I64d",&v); 38 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 39 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 40 | #define sfstr(v) scanf("%sum", v); 41 | #define sz(v) (int)v.size() 42 | #define ndl puts("") 43 | #define flush fflush(stdout) 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | typedef long double ld; 48 | 49 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 50 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 51 | 52 | ll gcd(ll first, ll second) { return !second ? first : gcd(second, first % second); } 53 | ll lcm(ll first, ll second) { return (first / gcd(first, second)) * second; } 54 | 55 | void PLAY() { 56 | #ifndef ONLINE_JUDGE 57 | freopen("input.txt", "r", stdin); 58 | freopen("output.txt", "w", stdout); 59 | #endif 60 | 61 | cout << fixed << setprecision(5); 62 | ios::sync_with_stdio(0); 63 | cin.tie(0); 64 | cout.tie(0); 65 | } 66 | 67 | 68 | int main() { 69 | PLAY(); 70 | 71 | ll n; 72 | cin >> n; 73 | ll res = 0, cur = 1; 74 | while (cur < n) { 75 | res += cur + (((n - 1) - cur) / (cur * 2LL)) * cur; 76 | cur *= 2LL; 77 | } 78 | cout << res << endl; 79 | 80 | return 0; 81 | } 82 | -------------------------------------------------------------------------------- /HackerRank/hyperspace-travel.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) (int)v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | typedef long double ld; 48 | 49 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 50 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 51 | 52 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 53 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 54 | 55 | void PLAY() { 56 | #ifndef ONLINE_JUDGE 57 | freopen("input.txt", "r", stdin); 58 | freopen("output.txt", "w", stdout); 59 | #endif 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | int a[105][10005]; 67 | 68 | int main() { 69 | PLAY(); 70 | 71 | int n, m; 72 | cin >> n >> m; 73 | for (int i = 0; i < n; i++) 74 | for (int j = 0; j < m; j++) 75 | cin >> a[j][i]; 76 | 77 | for (int i = 0; i < m; i++) { 78 | sortaa(a[i], n); 79 | cout << a[i][(n + 1) / 2 - 1] << " "; 80 | } 81 | return 0; 82 | } 83 | -------------------------------------------------------------------------------- /ICPC Live Archive/6398.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Binary Search 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 54 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 55 | 56 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 57 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 58 | 59 | void PLAY() { 60 | #ifndef ONLINE_JUDGE 61 | freopen("input.txt", "r", stdin); 62 | freopen("output.txt", "w", stdout); 63 | #endif 64 | cout << fixed << setprecision(6); 65 | ios::sync_with_stdio(0); 66 | cin.tie(0); 67 | cout.tie(0); 68 | } 69 | 70 | 71 | int v[1000005], n, k, size; 72 | 73 | 74 | bool valid(int d) { 75 | int i, j; 76 | for (i = 0, j = 0; i < n; i++) { 77 | while (j + 1 < size && v[j + 1] - v[j] > d) j++; 78 | if (v[j + 1] - v[j] <= d && (size - j) >= (n - i) * 2 * k) j += 2; 79 | else return false; 80 | } 81 | return i == n; 82 | } 83 | 84 | int main() { 85 | PLAY(); 86 | 87 | while (cin >> n >> k) { 88 | size = 2 * n * k; 89 | for (int i = 0; i < size; i++) 90 | cin >> v[i]; 91 | sort(v, v + size); 92 | int lo = 0, hi = 1e9, res = 0; 93 | while (lo <= hi) { 94 | int mid = (lo + hi) / 2; 95 | if (valid(mid)) hi = mid - 1, res = mid; 96 | else lo = mid + 1; 97 | } 98 | cout << res << endl; 99 | } 100 | return 0; 101 | } 102 | -------------------------------------------------------------------------------- /InterviewBit/add-one-to-number.java: -------------------------------------------------------------------------------- 1 | public class Solution { 2 | public ArrayList plusOne(ArrayList A) { 3 | int start = 0; 4 | while(start < A.size() && A.get(start) == 0) 5 | start++; 6 | int lastIdx = A.size() - 1, carry = 1; 7 | while(lastIdx >= start) { 8 | int curDigit = A.get(lastIdx); 9 | curDigit += carry; 10 | if(curDigit == 10) 11 | curDigit = 0; 12 | else 13 | carry = 0; 14 | A.set(lastIdx, curDigit); 15 | lastIdx--; 16 | } 17 | ArrayList result = new ArrayList(); 18 | if(carry != 0) 19 | result.add(carry); 20 | for(int i = start; i < A.size(); i++) 21 | result.add(A.get(i)); 22 | return result; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /InterviewBit/anti-diagonals.java: -------------------------------------------------------------------------------- 1 | public class Solution { 2 | public ArrayList> diagonal(ArrayList> A) { 3 | ArrayList> result = new ArrayList>(); 4 | int n = A.size(); 5 | int m = A.get(0).size(); 6 | for(int i = 0; i < m; i++) { 7 | int curCol = i; 8 | int curRow = 0; 9 | result.add(new ArrayList()); 10 | while(curRow < n && curCol >= 0) { 11 | result.get(result.size() - 1).add(A.get(curRow).get(curCol)); 12 | curRow++; 13 | curCol--; 14 | } 15 | } 16 | for(int i = 1; i < n; i++) { 17 | int curRow = i; 18 | int curCol = m - 1; 19 | result.add(new ArrayList()); 20 | while(curRow < n && curCol >= 0) { 21 | result.get(result.size() - 1).add(A.get(curRow).get(curCol)); 22 | curRow++; 23 | curCol--; 24 | } 25 | } 26 | return result; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /InterviewBit/excel-column-number.java: -------------------------------------------------------------------------------- 1 | public class Solution { 2 | public int titleToNumber(String A) { 3 | int result = 0; 4 | for(int i = A.length() - 1, j = 0; i >= 0; i--) { 5 | result += (A.charAt(i) - 'A' + 1) * (int)Math.pow(26, j++); 6 | } 7 | return result; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /InterviewBit/excel-column-title.java: -------------------------------------------------------------------------------- 1 | public class Solution { 2 | public String convertToTitle(int A) { 3 | StringBuilder sb = new StringBuilder(); 4 | A--; 5 | while(A >= 0) { 6 | int tmp = A % 26; 7 | sb.append((char) (tmp + 'A')); 8 | A /= 26; 9 | A--; 10 | } 11 | return sb.reverse().toString(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /InterviewBit/length-of-last-word.java: -------------------------------------------------------------------------------- 1 | public class Solution { 2 | // DO NOT MODIFY THE LIST. IT IS READ ONLY 3 | public int lengthOfLastWord(final String A) { 4 | boolean space = false; 5 | int res = 0; 6 | for(int i = A.length() - 1; i >= 0; i--) { 7 | if(A.charAt(i) == ' ' && space) 8 | break; 9 | if(Character.isLetter(A.charAt(i))) { 10 | space = true; 11 | res++; 12 | } 13 | } 14 | return res; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /InterviewBit/noble-integer.java: -------------------------------------------------------------------------------- 1 | public class Solution { 2 | public int solve(ArrayList A) { 3 | Collections.sort(A); 4 | for(int i = 0; i < A.size(); i++) { 5 | while(i + 1 < A.size() && A.get(i) == A.get(i + 1)) 6 | i++; 7 | int rem = A.size() - i - 1; 8 | if(rem == A.get(i)) 9 | return 1; 10 | } 11 | return -1; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /InterviewBit/pascal-triangle.java: -------------------------------------------------------------------------------- 1 | public class Solution { 2 | public ArrayList> solve(int A) { 3 | ArrayList> pascalTriangle = new ArrayList>(); 4 | if(A <= 0) 5 | return pascalTriangle; 6 | for(int i = 0; i < A; i++) { 7 | pascalTriangle.add(new ArrayList()); 8 | for(int j = 0; j <= i; j++) { 9 | if(j == i || j == 0) 10 | pascalTriangle.get(i).add(1); 11 | else 12 | pascalTriangle.get(i).add(pascalTriangle.get(i - 1).get(j) + pascalTriangle.get(i - 1).get(j - 1)); 13 | } 14 | } 15 | return pascalTriangle; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /InterviewBit/spiral-order-matrix-i.java: -------------------------------------------------------------------------------- 1 | public class Solution { 2 | // DO NOT MODIFY THE LIST. IT IS READ ONLY 3 | public ArrayList spiralOrder(final List> A) { 4 | int n = A.size(); 5 | int m = A.get(0).size(); 6 | int startRow = 0, startCol = 0; 7 | int endRow = n, endCol = m; 8 | int curRow = 0, curCol = 0; 9 | int dir = 0; 10 | ArrayList spiralList = new ArrayList(); 11 | while(startRow != endRow && startCol != endCol) { 12 | if(dir == 0) { // from left to right 13 | while(curCol < endCol) { 14 | spiralList.add(A.get(curRow).get(curCol)); 15 | curCol++; 16 | } 17 | curCol--; 18 | curRow++; 19 | startRow++; 20 | dir = 1; 21 | } else if(dir == 1) { // from up to down 22 | while(curRow < endRow) { 23 | spiralList.add(A.get(curRow).get(curCol)); 24 | curRow++; 25 | } 26 | curRow--; 27 | curCol--; 28 | endCol--; 29 | dir = 2; 30 | } else if(dir == 2) { // from right to left 31 | while(curCol >= startCol) { 32 | spiralList.add(A.get(curRow).get(curCol)); 33 | curCol--; 34 | } 35 | curCol++; 36 | curRow--; 37 | endRow--; 38 | dir = 3; 39 | } else if(dir == 3) { // from down to up 40 | while(curRow >= startRow) { 41 | spiralList.add(A.get(curRow).get(curCol)); 42 | curRow--; 43 | } 44 | curRow++; 45 | curCol++; 46 | startCol++; 47 | dir = 0; 48 | } 49 | } 50 | return spiralList; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /POJ/2000.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) (int)v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | typedef long double ld; 48 | 49 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 50 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 51 | 52 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 53 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 54 | 55 | void PLAY() { 56 | #ifndef ONLINE_JUDGE 57 | freopen("input.txt", "r", stdin); 58 | freopen("output.txt", "w", stdout); 59 | #endif 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | int coins[10005]; 67 | 68 | int main() { 69 | PLAY(); 70 | 71 | coins[0] = 1; 72 | int days = 2; 73 | int cnt = 2; 74 | for (int i = 1; i < 10005; i++) { 75 | coins[i] = coins[i - 1] + cnt; 76 | days--; 77 | if (!days) { 78 | cnt++; 79 | days = cnt; 80 | } 81 | } 82 | int n; 83 | while (cin >> n && n) cout << n << " " << coins[n - 1] << endl; 84 | 85 | return 0; 86 | } 87 | -------------------------------------------------------------------------------- /POJ/2096.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | 60 | cout << fixed << setprecision(4); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | double dp[1005][1005]; 67 | 68 | int main() { 69 | PLAY(); 70 | 71 | 72 | double n, s; 73 | cin >> n >> s; 74 | for (int i = n; i >= 0; i--) { 75 | for (int j = s; j >= 0; j--) { 76 | if (i == n && j == s) continue; 77 | double p1 = 1.0 - ((i*j)) / n / s; 78 | double p2 = ((s - j) * i) / n / s; 79 | double p3 = ((n - i)*j) / n / s; 80 | double p4 = ((n - i) * (s - j)) / n / s; 81 | dp[i][j] = p2*dp[i][j + 1] + p3*dp[i + 1][j] + p4*dp[i + 1][j + 1] + 1; 82 | dp[i][j] /= p1; 83 | } 84 | } 85 | cout << dp[0][0] << endl; 86 | 87 | return 0; 88 | } 89 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Competitive Programming 2 | 3 | This repository contains source codes for some problems I have solved on online judges. 4 | 5 | * [A2OJ Profile](https://a2oj.com/profile?Username=ayman96) (Solved +1k problems on all online judges) 6 | * [Codeforces Profile](http://codeforces.com/profile/_AymanSalah) (Max rating: candidate master, 2003) 7 | * [HackerRank Profile](https://www.hackerrank.com/AymanSalah) 8 | * [ICPC Profile](https://icpc.baylor.edu/ICPCID/FFTURM3XOFPF) 9 | * Recording some videos to explain solutions for some problems for juniors (in Arabic) [YouTube playlist](https://www.youtube.com/playlist?list=PLj1Mu2IzgNfNou5a3EANQKcKrW9iOtpTH) 10 | -------------------------------------------------------------------------------- /SPOJ/CVJETICI.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | void PLAY() { 30 | cout << fixed << setprecision(10); 31 | ios::sync_with_stdio(0); 32 | cin.tie(0); 33 | cout.tie(0); 34 | } 35 | 36 | const int MAX = (1 << 17); 37 | 38 | int BIT[MAX]; 39 | 40 | int get(int idx) { 41 | idx++; 42 | int ret = 0; 43 | while (idx) { 44 | ret += BIT[idx - 1]; 45 | idx -= (idx & -idx); 46 | } 47 | return ret; 48 | } 49 | 50 | void add(int idx, int val) { 51 | idx++; 52 | while (idx <= MAX) { 53 | BIT[idx - 1] += val; 54 | idx += (idx & -idx); 55 | } 56 | } 57 | 58 | 59 | int cnt[MAX]; 60 | 61 | int main() { 62 | PLAY(); 63 | 64 | int n; 65 | cin >> n; 66 | while (n--) { 67 | int l, r; 68 | cin >> l >> r; 69 | int a = get(l - 1), b = get(r - 1); 70 | cout << a + b - cnt[l - 1] - cnt[r - 1] << "\n"; 71 | cnt[l - 1] = a; cnt[r - 1] = b; 72 | add(l, 1); 73 | add(r - 1, -1); 74 | } 75 | 76 | return 0; 77 | } 78 | -------------------------------------------------------------------------------- /SPOJ/HISTOGRA.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int n; 69 | while (cin >> n && n) { 70 | 71 | vector v(n); 72 | for (int j = 0; j < n; j++) 73 | cin >> v[j]; 74 | 75 | stack st; 76 | 77 | ll res = 0; 78 | 79 | int i = 0; 80 | while (i < n) { 81 | if (st.empty() || v[st.top()] <= v[i]) 82 | st.push(i++); 83 | else { 84 | int top = st.top(); 85 | st.pop(); 86 | ll tmp = v[top] * (sz(st) ? i - st.top() - 1 : i); 87 | res = max(res, tmp); 88 | } 89 | } 90 | 91 | while (sz(st)) { 92 | int top = st.top(); 93 | st.pop(); 94 | ll tmp = v[top] * (sz(st) ? i - st.top() - 1 : i); 95 | res = max(res, tmp); 96 | } 97 | 98 | cout << res << "\n"; 99 | } 100 | 101 | return 0; 102 | } 103 | -------------------------------------------------------------------------------- /SPOJ/IMPUNITS.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) (int)v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | typedef long double ld; 48 | 49 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 50 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 51 | 52 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 53 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 54 | 55 | void PLAY() { 56 | #ifndef ONLINE_JUDGE 57 | freopen("input.txt", "r", stdin); 58 | freopen("output.txt", "w", stdout); 59 | #endif 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | 67 | int main() { 68 | PLAY(); 69 | 70 | int n; 71 | while (cin >> n && n != -1) { 72 | n--; 73 | ll a = 1, b = 1; 74 | while (n--) { 75 | int x, y; 76 | cin >> x >> y; 77 | a *= x; b *= y; 78 | } 79 | cout << a / gcd(a, b) << " " << b / gcd(a, b) << endl; 80 | } 81 | 82 | return 0; 83 | } 84 | -------------------------------------------------------------------------------- /SPOJ/PHONELST.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) (int)v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | typedef long double ld; 48 | 49 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 50 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 51 | 52 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 53 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 54 | 55 | void PLAY() { 56 | #ifndef ONLINE_JUDGE 57 | freopen("input.txt", "r", stdin); 58 | freopen("output.txt", "w", stdout); 59 | #endif 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | struct Trie { 67 | Trie *next[10]; 68 | bool isNum; 69 | Trie() { 70 | isNum = false; 71 | for (int i = 0; i < 10; i++) 72 | next[i] = NULL; 73 | } 74 | }; 75 | 76 | bool insert(Trie *root, string num) { 77 | Trie *cur = root; 78 | for (int i = 0; i < sz(num); i++) { 79 | if (cur->isNum) return false; 80 | int idx = num[i] - '0'; 81 | if (cur->next[idx] != NULL) 82 | cur = cur->next[idx]; 83 | else 84 | cur = cur->next[idx] = new Trie(); 85 | } 86 | cur->isNum = true; 87 | for (int i = 0; i < 10; i++) 88 | if (cur->next[i] != NULL) return false; 89 | return true; 90 | } 91 | 92 | int main() { 93 | PLAY(); 94 | 95 | int t; 96 | cin >> t; 97 | while (t--) { 98 | int n; 99 | cin >> n; 100 | string s; 101 | Trie *root = new Trie(); 102 | bool ok = true; 103 | while (n--) { 104 | cin >> s; 105 | if (!insert(root, s)) ok = false; 106 | } 107 | if (ok) cout << "YES" << endl; 108 | else cout << "NO" << endl; 109 | } 110 | 111 | return 0; 112 | } 113 | -------------------------------------------------------------------------------- /SPOJ/PIR.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(4); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int t; 69 | cin >> t; 70 | while (t--) { 71 | ld u, v, w, U, V, W; 72 | cin >> u >> v >> w >> W >> V >> U; 73 | ld u1 = v*v + w*w - U*U; 74 | ld v1 = w*w + u*u - V*V; 75 | ld w1 = u*u + v*v - W*W; 76 | ld tmp = 4.0*u*u*v*v*w*w - u*u*u1*u1 - v*v*v1*v1 - w*w*w1*w1 + u1*v1*w1; 77 | ld res = sqrt(tmp) / 12.0; 78 | cout << res << endl; 79 | } 80 | 81 | return 0; 82 | } 83 | -------------------------------------------------------------------------------- /SPOJ/TWINSNOW.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Implementation 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) (int)v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | 54 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 55 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 56 | 57 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 58 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 59 | ll power(ll a, ll b, ll ret = 1LL) { 60 | while (b--) ret = (ret * a); 61 | return ret; 62 | } 63 | 64 | void PLAY() { 65 | #ifndef ONLINE_JUDGE 66 | freopen("input.txt", "r", stdin); 67 | freopen("output.txt", "w", stdout); 68 | #endif 69 | cout << fixed << setprecision(2); 70 | ios::sync_with_stdio(0); 71 | cin.tie(0); 72 | cout.tie(0); 73 | } 74 | 75 | 76 | 77 | int main() { 78 | PLAY(); 79 | 80 | 81 | int n; 82 | cin >> n; 83 | 84 | map, int> mp; 85 | while (n--) { 86 | vector v(6); 87 | for (int i = 0; i < 6; i++) 88 | cin >> v[i]; 89 | sortva(v); 90 | mp[v]++; 91 | } 92 | 93 | for (auto e : mp) { 94 | if (e.second >= 2) { 95 | cout << "Twin snowflakes found." << endl; 96 | return 0; 97 | } 98 | } 99 | 100 | cout << "No two snowflakes are alike." << endl; 101 | return 0; 102 | } 103 | -------------------------------------------------------------------------------- /TIMUS/1209.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int main() { 65 | PLAY(); 66 | 67 | ll i = 0, add = 1; 68 | vector v; 69 | ll tmp = ((1LL << 31) - 1); 70 | while (i < tmp) { 71 | v.push_back(i); 72 | i += add++; 73 | } 74 | 75 | ll n; 76 | cin >> n; 77 | while (n--) { 78 | ll x; 79 | cin >> x; 80 | x--; 81 | cout << binary_search(all(v), x); 82 | if (n) cout << " "; 83 | } 84 | 85 | return 0; 86 | } 87 | -------------------------------------------------------------------------------- /Topcoder/SRM146-D2-1000.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define sz(v) (int)v.size() 30 | 31 | int res, n; 32 | 33 | void solve(vector &time, vector passed, int cost) { 34 | 35 | int numberOfPassed = 0, last1 = -1, last2 = -1; 36 | for (int i = 0; i < n; i++) { 37 | if (passed[i]) numberOfPassed++; 38 | else if(last1 == -1) last1 = time[i]; 39 | else last2 = time[i]; 40 | } 41 | if (numberOfPassed == n - 1) { 42 | res = min(res, cost + last1); 43 | return; 44 | } 45 | if (numberOfPassed == n - 2) { 46 | res = min(res, cost + max(last1, last2)); 47 | return; 48 | } 49 | for (int i = 0; i < n; i++) { 50 | for (int j = 0; j < n; j++) { 51 | if (i == j) continue; 52 | for (int k = 0; k < n; k++) { 53 | if (passed[i] || passed[j]) continue; 54 | if (i != k && j != k && !passed[k]) continue; 55 | 56 | int cur_cost = max(time[i], time[j]) + time[k]; 57 | 58 | if (i == k) { 59 | passed[j] = true; 60 | solve(time, passed, cost + cur_cost); 61 | passed[j] = false; 62 | } 63 | else if (j == k) { 64 | passed[i] = true; 65 | solve(time, passed, cost + cur_cost); 66 | passed[i] = false; 67 | } 68 | else { 69 | passed[i] = passed[j] = true; 70 | passed[k] = false; 71 | solve(time, passed, cost + cur_cost); 72 | passed[i] = passed[j] = false; 73 | passed[k] = true; 74 | } 75 | } 76 | } 77 | } 78 | } 79 | 80 | class BridgeCrossing { 81 | public: 82 | 83 | int minTime(vector times) { 84 | n = sz(times); 85 | res = INT_MAX; 86 | solve(times, vector(sz(times), false), 0); 87 | return res; 88 | } 89 | }; 90 | -------------------------------------------------------------------------------- /Topcoder/SRM149-D1-500.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Dynamic Programming 5 | 6 | Idea: 7 | -Count all possible valid messages with DP 8 | -Take care of overflow. You don't need the actual number of differant valid messages. 9 | -Then if it's a unique message then construct it using the DP taple. 10 | -Else if there are more than one valid message output "AMBIGUOUS!" 11 | -Else if there are no valid messages at all output "IMPOSSIBLE!" 12 | */ 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | 35 | using namespace std; 36 | 37 | typedef long long ll; 38 | 39 | class MessageMess { 40 | public: 41 | 42 | vector dic; 43 | string mess; 44 | ll dp[55]; 45 | ll solve(int i) { 46 | if (i == mess.size()) return dp[i] = 1; 47 | ll &ret = dp[i]; 48 | if (ret != -1) return ret; 49 | ret = 0; 50 | string cur = mess; 51 | cur.erase(0, i); 52 | for (int j = 0; j < dic.size(); j++) { 53 | string substr = cur.substr(0, dic[j].size()); 54 | if (substr == dic[j]) { 55 | ret += solve(i + substr.size()); 56 | if (ret > 1) return ret = 2; 57 | } 58 | } 59 | return ret; 60 | } 61 | 62 | string restore(vector dictionary, string message) { 63 | memset(dp, -1, sizeof dp); 64 | mess = message; 65 | dic = dictionary; 66 | ll cnt = solve(0); 67 | if (cnt == 0) return "IMPOSSIBLE!"; 68 | if (cnt > 1) return "AMBIGUOUS!"; 69 | string ret = ""; 70 | int prev = 0; 71 | for (int i = 0; i <= message.size(); i++) { 72 | if (dp[i] == 1) { 73 | int sz = i - prev; 74 | if (!sz) continue; 75 | ret += mess.substr(0, sz); 76 | ret += " "; 77 | mess.erase(0, sz); 78 | prev = i; 79 | } 80 | } 81 | if (ret.back() == ' ') ret.pop_back(); 82 | return ret; 83 | } 84 | }; 85 | -------------------------------------------------------------------------------- /Topcoder/SRM232-D2-500.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) (int)v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | class WordFind { 54 | public: 55 | int n, m; 56 | vector g; 57 | 58 | bool in(int i, int j) { return i >= 0 && i < n && j >= 0 && j < m; } 59 | 60 | bool find(string w, int i, int j) { 61 | int dx[3] = { 0, 1, 1 }; 62 | int dy[3] = { 1, 0, 1 }; 63 | 64 | for (int k = 0; k < 3; k++) { 65 | int curi = i, curj = j, idx = 0; 66 | while (in(curi, curj) && idx < sz(w)) { 67 | if (w[idx] != g[curi][curj]) break; 68 | idx++; 69 | curi += dx[k]; 70 | curj += dy[k]; 71 | } 72 | if (idx == sz(w)) return true; 73 | } 74 | return false; 75 | } 76 | vector findWords(vector grid, vector wordList) { 77 | n = sz(grid); 78 | m = sz(grid[0]); 79 | g = grid; 80 | vector ret; 81 | for (int i = 0; i < sz(wordList); i++) { 82 | bool found = false; 83 | for (int a = 0; a < n && !found; a++) { 84 | for (int b = 0; b < m && !found; b++) { 85 | if (find(wordList[i], a, b)) { 86 | SS ss; ss << a; ss << " "; ss << b; 87 | ret.push_back(ss.str()); 88 | found = true; 89 | } 90 | } 91 | } 92 | if (!found) ret.push_back(""); 93 | } 94 | return ret; 95 | } 96 | }; 97 | -------------------------------------------------------------------------------- /Topcoder/SRM301-D1-500.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Graphs, Shortest Path, Floyd Warshall Algorithm 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | 36 | class EscapingJail { 37 | public: 38 | 39 | int getDistance(char ch) { 40 | if (ch >= '0' && ch <= '9') return ch - '0'; 41 | if (ch >= 'a' && ch <= 'z') return (ch - 'a') + 10; 42 | return (ch - 'A') + 36; 43 | } 44 | int getMaxDistance(vector chain) { 45 | int n = (int)chain.size(); 46 | int cost[55][55]; 47 | for (int i = 0; i < n; i++) 48 | for (int j = 0; j < n; j++) 49 | cost[i][j] = INT_MAX; 50 | for (int i = 0; i < n; i++) { 51 | for (int j = 0; j < n; j++) { 52 | if (chain[i][j] == ' ') continue; 53 | cost[i][j] = getDistance(chain[i][j]); 54 | } 55 | } 56 | 57 | for (int k = 0; k < n; k++) 58 | for (int i = 0; i < n; i++) 59 | for (int j = 0; j < n; j++) 60 | if (cost[i][k] < INT_MAX && cost[k][j] < INT_MAX) 61 | cost[i][j] = min(cost[i][j], cost[i][k] + cost[k][j]); 62 | int ret = INT_MIN; 63 | for (int i = 0; i < n; i++) 64 | for (int j = 0; j < n; j++) 65 | ret = max(ret, cost[i][j]); 66 | if (ret == INT_MAX) return -1; 67 | return ret; 68 | } 69 | }; 70 | -------------------------------------------------------------------------------- /Topcoder/SRM339-D1-500.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) (int)v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | 54 | double dp[1005][55][100]; 55 | bool vis[1005][55][100]; 56 | 57 | 58 | class TestBettingStrategy { 59 | public: 60 | 61 | int goal; 62 | double p; 63 | 64 | double solve(int cur, int r, int b) { 65 | int tmp = 1 << b; 66 | if (cur < tmp) return 0; 67 | if (cur >= goal) return 1; 68 | if (r == 0) return 0; 69 | double &ret = dp[cur][r][b]; 70 | if (vis[cur][r][b]) return ret; 71 | vis[cur][r][b] = 1; 72 | return ret = p * solve(cur + (1 << b), r - 1, 0) 73 | + (1 - p) * solve(cur - (1 << b), r - 1, b + 1); 74 | } 75 | 76 | double winProbability(int initSum, int goalSum, int rounds, int prob) { 77 | goal = goalSum; 78 | p = prob / 100.0; 79 | return solve(initSum, rounds, 0); 80 | } 81 | }; 82 | -------------------------------------------------------------------------------- /Topcoder/SRM361-D2-500.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define sz(v) (int)v.size() 30 | 31 | class WhiteHats { 32 | public: 33 | int whiteNumber(vector count) { 34 | int n = sz(count); 35 | vector freq(51, 0); 36 | for (int i = 0; i < sz(count); i++) 37 | freq[count[i]]++; 38 | if (freq[0] == n) return 0; 39 | for (int i = 1; i < sz(freq); i++) 40 | if (freq[i - 1] == i && freq[i] == n - i) 41 | return i; 42 | return -1; 43 | } 44 | }; 45 | -------------------------------------------------------------------------------- /Topcoder/SRM364-D1-500.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Dynamic Programming, Bitmask 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | using namespace std; 28 | 29 | 30 | class PowerPlants { 31 | public: 32 | 33 | 34 | int getCost(char ch) { 35 | if (ch >= '0' && ch <= '9') return ch - '0'; 36 | return (ch - 'A') + 10; 37 | } 38 | 39 | int minCost(vector connectionCost, string plantList, int numPlants) { 40 | int n = (int)connectionCost.size(); 41 | int cost[16][16]; 42 | for (int i = 0; i < n; i++) 43 | for (int j = 0; j < n; j++) 44 | cost[i][j] = getCost(connectionCost[i][j]); 45 | int dp[1 << 16]; 46 | for (int i = 0; i < 1 << 16; i++) 47 | dp[i] = 1e4; 48 | int msk = 0; 49 | for (int i = 0; i < plantList.size(); i++) 50 | if (plantList[i] == 'Y') 51 | msk |= (1 << i); 52 | dp[msk] = 0; 53 | int ret = 1e4; 54 | for (int i = 1; i < (1 << n); i++) { 55 | int tmp = i, cnt = 0; 56 | while (tmp) { 57 | tmp = tmp & (tmp - 1); 58 | cnt++; 59 | } 60 | if (cnt >= numPlants) { 61 | ret = min(ret, dp[i]); 62 | continue; 63 | } 64 | for (int j = 0; j < n; j++) { 65 | if (!(i & (1 << j))) { 66 | int mnCost = 1e4; 67 | for (int k = 0; k < n; k++) 68 | if (i & (1 << k)) 69 | mnCost = min(mnCost, cost[k][j]); 70 | dp[i | (1 << j)] = min(dp[i | (1 << j)], mnCost + dp[i]); 71 | 72 | } 73 | } 74 | } 75 | return ret; 76 | } 77 | }; 78 | -------------------------------------------------------------------------------- /Topcoder/SRM367-D2-1000.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define all(v) v.begin(),v.end() 30 | #define sortva(v) sort(all(v)) 31 | #define sz(v) (int)v.size() 32 | typedef long long ll; 33 | 34 | class ProgrammingDevice { 35 | public: 36 | int minPackets(vector offset, vector size, int maxData) { 37 | int n = sz(offset); 38 | vector res(n, 0); 39 | vector> v(n); 40 | for (int i = 0; i < n; i++) 41 | v[i] = { offset[i], offset[i] + size[i] - 1 }; 42 | sortva(v); 43 | for (int i = 0; i < n; i++) { 44 | ll size = v[i].second - v[0].first + 1; 45 | res[i] = size / maxData + bool(size % maxData); 46 | for (int j = 1; j <= i; j++) { 47 | size = v[i].second - v[j].first + 1; 48 | res[i] = min(res[i], res[j - 1] + (size / maxData + bool(size % maxData))); 49 | } 50 | } 51 | return res.back(); 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /Topcoder/SRM372-D2-500.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | using namespace std; 22 | 23 | 24 | class RoadConstruction { 25 | public: 26 | int getExitTime(vector v) { 27 | int r = 0; 28 | int n = (int)v.size(); 29 | int l = n - 1; 30 | vector vis(n, 0); 31 | while (true) { 32 | for (int i = 0; i < n; i++) { 33 | if (!v[i].size()) continue; 34 | if (vis[i] >= l || i == l) { 35 | if (v[i][0] == 'D') return r; 36 | v[i] = v[i].substr(1); 37 | r++; 38 | vis[i] = 0; 39 | if (i == l) 40 | for (int j = 0; j < n; j++) 41 | if (v[j].size()) l = j; 42 | break; 43 | } 44 | else 45 | vis[i] = l; 46 | } 47 | } 48 | return r; 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /Topcoder/SRM410-D2-500.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) (int)v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | class AddElectricalWires { 54 | public: 55 | bool vis[55]; 56 | vector adj; 57 | int compSize; 58 | void dfs(int node) { 59 | if (vis[node]) return; 60 | vis[node] = true; 61 | compSize++; 62 | for (int i = 0; i < sz(adj[node]); i++) 63 | if (adj[node][i] == '1') 64 | dfs(i); 65 | } 66 | int maxNewWires(vector wires, vector gridConnections) { 67 | memset(vis, 0, sizeof vis); 68 | adj = wires; 69 | int ret = 0, cur = 0, n = sz(wires); 70 | for (int i = 0; i < n; i++) 71 | for (int j = 0; j < n; j++) 72 | cur += wires[i][j] == '1'; 73 | cur /= 2; 74 | int left = n, mx = 0; 75 | for (int i = 0; i < sz(gridConnections); i++) { 76 | compSize = 0; 77 | dfs(gridConnections[i]); 78 | ret += (compSize*(compSize - 1)) / 2; 79 | left -= compSize; 80 | mx = max(mx, compSize); 81 | } 82 | ret += (left*(left - 1)) / 2 + mx*left; 83 | return ret - cur; 84 | } 85 | }; 86 | -------------------------------------------------------------------------------- /Topcoder/SRM433-D2-500.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | using namespace std; 22 | 23 | 24 | class MagicWords { 25 | public: 26 | int count(vector S, int K) { 27 | int n = (int)S.size(); 28 | map memo; 29 | vector p(n); 30 | for (int i = 0; i < n; i++) 31 | p[i] = i; 32 | int ret = 0; 33 | do { 34 | string tmp = ""; 35 | for (int i = 0; i < n; i++) 36 | tmp += S[p[i]]; 37 | int &mem = memo[tmp]; 38 | if (mem != 0) { 39 | if (mem == 2) ret++; 40 | continue; 41 | } 42 | mem = 1; 43 | int m = 0; 44 | for (int i = 0; i < (int)tmp.size(); i++) { 45 | bool good = true; 46 | for (int j = 0; j < (int)tmp.size() && good; j++) 47 | if (tmp[j] != tmp[(j + i) % ((int)tmp.size())]) 48 | good = false; 49 | if (good) { 50 | m++; 51 | if (m > K) break; 52 | } 53 | } 54 | if (m == K) ret++, mem = 2; 55 | } while (next_permutation(p.begin(), p.end())); 56 | return ret; 57 | } 58 | }; 59 | -------------------------------------------------------------------------------- /Topcoder/SRM466-D2-500.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | using namespace std; 22 | 23 | 24 | class LotteryCheating { 25 | public: 26 | int minimalChange(string ID) { 27 | int ret = 1e9; 28 | for (int i = 0; i < 1e5; i++) { 29 | int tmp = 0; 30 | long long cur = 1LL*i*i; 31 | for (int j = ID.size() - 1; j >= 0; j--) { 32 | if (char(cur % 10 + '0') != ID[j]) tmp++; 33 | cur /= 10; 34 | } 35 | if (!cur) ret = min(ret, tmp); 36 | } 37 | return ret; 38 | } 39 | }; 40 | -------------------------------------------------------------------------------- /Topcoder/SRM493-D2-1000.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Brute Force, Geometry 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | using namespace std; 30 | 31 | class CrouchingAmoebas { 32 | public: 33 | int count(vector x, vector y, int A, int T) { 34 | int n = (int)x.size(); 35 | int ret = 0; 36 | for (int i = 0; i < n; ++i) { 37 | for (int j = 0; j < n; ++j) { 38 | for (int dx = -T; dx <= T; ++dx) { 39 | for (int dy = -T; dy <= T; ++dy) { 40 | if (abs(dx) + abs(dy) <= T) 41 | { 42 | int left_x = dx + x[i]; 43 | int down_y = dy + y[j]; 44 | vector vals; 45 | vals.clear(); 46 | for (int k = 0; k < n; ++k) 47 | { 48 | int cur = 0; 49 | if (x[k]left_x + A) 52 | cur += x[k] - left_x - A; 53 | if (cur > T) continue; 54 | if (y[k]down_y + A) 57 | cur += y[k] - down_y - A; 58 | if (cur > T) continue; 59 | vals.push_back(cur); 60 | } 61 | int cnt = 0, rem = T; 62 | sort(vals.begin(), vals.end()); 63 | for (int k = 0; k < vals.size(); ++k) { 64 | if (rem - vals[k] < 0) break; 65 | rem -= vals[k]; 66 | cnt++; 67 | } 68 | ret = max(ret, cnt); 69 | } 70 | } 71 | } 72 | } 73 | } 74 | return ret; 75 | } 76 | }; 77 | -------------------------------------------------------------------------------- /UVA/10077.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int main() { 65 | PLAY(); 66 | 67 | int n, m; 68 | while (cin >> n >> m) { 69 | if (n == 1 && m == 1) break; 70 | int a = 0, b = 1, c = 1, d = 0; 71 | while (true) { 72 | int x = a + c, y = b + d; 73 | if (x == n && y == m) break; 74 | if (n * y > m * x) { 75 | cout << "R"; 76 | a = x, b = y; 77 | } 78 | else { 79 | cout << "L"; 80 | c = x, d = y; 81 | } 82 | } 83 | cout << "\n"; 84 | } 85 | 86 | return 0; 87 | } 88 | -------------------------------------------------------------------------------- /UVA/10365.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Brute Force, Math 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 54 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 55 | 56 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 57 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 58 | 59 | void PLAY() { 60 | #ifndef ONLINE_JUDGE 61 | freopen("input.txt", "r", stdin); 62 | freopen("output.txt", "w", stdout); 63 | #endif 64 | cout << fixed << setprecision(10); 65 | ios::sync_with_stdio(0); 66 | cin.tie(0); 67 | cout.tie(0); 68 | } 69 | 70 | 71 | 72 | int main() { 73 | PLAY(); 74 | 75 | int t; 76 | cin >> t; 77 | while (t--) { 78 | int n; 79 | cin >> n; 80 | int res = INT_MAX; 81 | for (int i = 1; i*i <= n; i++) { 82 | for (int j = 1; j*i <= n; j++) { 83 | for (int k = 1; k*j*i <= n; k++) { 84 | if(i*j*k == n)res = min(res, 2 * (i*j + j*k + i*k)); 85 | } 86 | } 87 | } 88 | cout << res << endl; 89 | } 90 | 91 | return 0; 92 | } 93 | -------------------------------------------------------------------------------- /UVA/10404.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Dynamic Programming - Games 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) (int)v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | 54 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 55 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 56 | 57 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 58 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 59 | ll power(ll a, ll b, ll ret = 1LL) { 60 | while (b--) ret = (ret * a); 61 | return ret; 62 | } 63 | 64 | void PLAY() { 65 | #ifndef ONLINE_JUDGE 66 | freopen("input.txt", "r", stdin); 67 | freopen("output.txt", "w", stdout); 68 | #endif 69 | cout << fixed << setprecision(10); 70 | ios::sync_with_stdio(0); 71 | cin.tie(0); 72 | cout.tie(0); 73 | } 74 | 75 | 76 | int n, m, a[15]; 77 | int dp[1000001]; 78 | 79 | int can_win(int cur) { 80 | if (cur == 0) return false; 81 | 82 | int &win = dp[cur]; 83 | if (win != -1) return win; 84 | win = 0; 85 | for (int i = 0; i < m; i++) 86 | if (cur - a[i] >= 0) 87 | win |= !can_win(cur - a[i]); 88 | 89 | return win; 90 | } 91 | 92 | int main() { 93 | PLAY(); 94 | 95 | while (cin >> n) { 96 | memset(dp, -1, sizeof dp); 97 | cin >> m; 98 | for (int i = 0; i < m; i++) 99 | cin >> a[i]; 100 | if (can_win(n)) 101 | cout << "Stan wins" << endl; 102 | else 103 | cout << "Ollie wins" << endl; 104 | } 105 | 106 | return 0; 107 | } 108 | -------------------------------------------------------------------------------- /UVA/10432.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Geometry 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) (int)v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 54 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 55 | 56 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 57 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 58 | 59 | void PLAY() { 60 | #ifndef ONLINE_JUDGE 61 | freopen("input.txt", "r", stdin); 62 | freopen("output.txt", "w", stdout); 63 | #endif 64 | cout << fixed << setprecision(3); 65 | ios::sync_with_stdio(0); 66 | cin.tie(0); 67 | cout.tie(0); 68 | } 69 | 70 | double to_rad(double angle) { 71 | return angle*PI / 180; 72 | } 73 | 74 | int main() { 75 | PLAY(); 76 | 77 | double n, r; 78 | while (cin >> r >> n) { 79 | double A = to_rad(360.0 / n); 80 | double triangle_area = r*r*abs(sin(A)) / 2; 81 | double bounded_area = (0.5*r*r*A) - triangle_area; 82 | double circle_area = PI*r*r; 83 | double polygon_area = circle_area - (bounded_area * n); 84 | cout << polygon_area << endl; 85 | } 86 | 87 | return 0; 88 | } 89 | -------------------------------------------------------------------------------- /UVA/10622.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) (int)v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(1); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | map mp; 69 | for (ll i = 2; i <= 46341; i++) { 70 | ll tmp = i, cnt = 1; 71 | while (tmp <= INT_MAX) { 72 | mp[tmp] = max(cnt, mp[tmp]); 73 | tmp *= i; 74 | cnt++; 75 | } 76 | } 77 | 78 | for (ll i = -2; i >= -46341; i--) { 79 | ll tmp = i, cnt = 1; 80 | while (tmp >= INT_MIN) { 81 | mp[tmp] = max(cnt, mp[tmp]); 82 | tmp *= i; tmp *= i; 83 | cnt += 2; 84 | } 85 | } 86 | ll n; 87 | while (cin >> n && n) { 88 | if (mp.find(n) == mp.end()) 89 | cout << 1 << endl; 90 | else 91 | cout << mp[n] << endl; 92 | } 93 | 94 | return 0; 95 | } 96 | -------------------------------------------------------------------------------- /UVA/10763.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | int main() { 66 | PLAY(); 67 | 68 | int n; 69 | while (cin >> n && n) { 70 | map mp; 71 | while (n--) { 72 | int x, y; 73 | cin >> x >> y; 74 | mp[x]--; 75 | mp[y]++; 76 | } 77 | string res = "YES"; 78 | for (auto from : mp) { 79 | if (from.second != 0) { 80 | res = "NO"; 81 | break; 82 | } 83 | } 84 | 85 | cout << res << endl; 86 | 87 | } 88 | 89 | return 0; 90 | } 91 | -------------------------------------------------------------------------------- /UVA/11437.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Geometry 5 | 6 | Idea: 7 | - Just substitute 8 | */ 9 | 10 | #define _CRT_SECURE_NO_WARNINGS 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | using namespace std; 37 | 38 | #define PI 3.14159265359 39 | #define all(v) v.begin(),v.end() 40 | #define sortva(v) sort(all(v)) 41 | #define sortvd(v) sort(v.rbegin(),v.rend()) 42 | #define sortaa(a,n) sort(a,a+n) 43 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 44 | #define sfi1(v) scanf("%d",&v) 45 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 46 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 47 | #define sfll1(v) scanf("%I64d",&v); 48 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 49 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 50 | #define sfstr(v) scanf("%s", v); 51 | #define sz(v) v.size() 52 | #define ndl puts("") 53 | #define SS stringstream 54 | typedef long long ll; 55 | typedef unsigned long long ull; 56 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 57 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 58 | 59 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 60 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 61 | 62 | void PLAY() { 63 | #ifndef ONLINE_JUDGE 64 | freopen("input.txt", "r", stdin); 65 | freopen("output.txt", "w", stdout); 66 | #endif 67 | cout << fixed << setprecision(4); 68 | ios::sync_with_stdio(0); 69 | cin.tie(0); 70 | cout.tie(0); 71 | } 72 | 73 | struct point { 74 | double x, y; 75 | }; 76 | 77 | int main() { 78 | PLAY(); 79 | 80 | int t; 81 | cin >> t; 82 | while (t--) { 83 | point p[3]; 84 | for (int i = 0; i < 3; i++) 85 | cin >> p[i].x >> p[i].y; 86 | cout << (int)(0.5 + (abs(p[0].x*p[1].y - p[0].y*p[1].x + p[1].x*p[2].y - p[1].y*p[2].x + p[2].x*p[0].y - p[2].y*p[0].x) / 2.0) / 7.0) << endl; 87 | } 88 | 89 | return 0; 90 | } 91 | -------------------------------------------------------------------------------- /UVA/1197.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(15); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | 65 | struct DSU { 66 | vector p, sz; 67 | int noOfSets; 68 | 69 | DSU(int n) { 70 | noOfSets = n; 71 | sz.resize(n, 1); 72 | p.resize(n); 73 | for (int i = 0; i < n; i++) 74 | p[i] = i; 75 | } 76 | 77 | int find(int u) { 78 | return u == p[u] ? u : p[u] = find(p[u]); 79 | } 80 | 81 | void merge(int u, int v) { 82 | int a = find(u); 83 | int b = find(v); 84 | if (a == b) return; 85 | if (sz[b] > sz[a]) swap(a, b); 86 | p[b] = a; 87 | sz[a] += sz[b]; 88 | noOfSets--; 89 | } 90 | 91 | }; 92 | 93 | 94 | int main() { 95 | PLAY(); 96 | 97 | 98 | int n, m; 99 | while (cin >> n >> m && n) { 100 | DSU dsu = DSU(n); 101 | while (m--) { 102 | int cur; cin >> cur; 103 | int first; cin >> first; 104 | while (--cur) { 105 | int tmp; cin >> tmp; 106 | dsu.merge(tmp, first); 107 | } 108 | } 109 | cout << dsu.sz[dsu.find(0)] << "\n"; 110 | } 111 | 112 | 113 | return 0; 114 | } 115 | -------------------------------------------------------------------------------- /UVA/12124.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define PI 3.14159265359 30 | #define all(v) v.begin(),v.end() 31 | #define sortva(v) sort(all(v)) 32 | #define sortvd(v) sort(v.rbegin(),v.rend()) 33 | #define sortaa(a,n) sort(a,a+n) 34 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 35 | #define sfi1(v) scanf("%d",&v) 36 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 37 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 38 | #define sfll1(v) scanf("%I64d",&v); 39 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 40 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 41 | #define sfstr(v) scanf("%s", v); 42 | #define sz(v) v.size() 43 | #define ndl puts("") 44 | #define SS stringstream 45 | typedef long long ll; 46 | typedef unsigned long long ull; 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int main() { 65 | PLAY(); 66 | 67 | int t; 68 | cin >> t; 69 | string type, name; 70 | int price, quality; 71 | while (t--) { 72 | int n, p; 73 | cin >> n >> p; 74 | map> mp; 75 | for (int i = 0; i < n; i++) { 76 | cin >> type >> name >> price >> quality; 77 | if (mp[type].find(quality) == mp[type].end()) mp[type][quality] = price; 78 | else mp[type][quality] = min(mp[type][quality], price); 79 | } 80 | int lo = 0, hi = 1e9 + 100, res = 0; 81 | while (lo <= hi) { 82 | int mid = (lo + hi) / 2; // quality 83 | int cost = 0; 84 | for (auto e : mp) { 85 | map::iterator it = e.second.lower_bound(mid); 86 | if (it == e.second.end()) { 87 | cost = INT_MAX; 88 | break; 89 | } 90 | int mn = INT_MAX; 91 | for (; it != e.second.end(); it++) 92 | mn = min(mn, it->second); 93 | cost += mn; 94 | } 95 | if (cost <= p) lo = mid + 1, res = mid; 96 | else hi = mid - 1; 97 | } 98 | cout << res << endl; 99 | } 100 | 101 | return 0; 102 | } 103 | -------------------------------------------------------------------------------- /UVA/12578.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Geometry 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) (int)v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | 54 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 55 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 56 | 57 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 58 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 59 | ll power(ll a, ll b, ll ret = 1LL) { 60 | while (b--) ret = (ret * a); 61 | return ret; 62 | } 63 | 64 | void PLAY() { 65 | #ifndef ONLINE_JUDGE 66 | freopen("input.txt", "r", stdin); 67 | freopen("output.txt", "w", stdout); 68 | #endif 69 | cout << fixed << setprecision(2); 70 | ios::sync_with_stdio(0); 71 | cin.tie(0); 72 | cout.tie(0); 73 | } 74 | 75 | 76 | 77 | int main() { 78 | PLAY(); 79 | 80 | int t; 81 | cin >> t; 82 | while (t--) { 83 | double l; 84 | cin >> l; 85 | double w = (l * 6) / 10; 86 | double r = (l / 5); 87 | double rect_area = w * l; 88 | double c = PI * r * r; 89 | cout << c << " " << rect_area - c << endl; 90 | } 91 | 92 | return 0; 93 | } 94 | -------------------------------------------------------------------------------- /UVA/12712.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) (int)v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 54 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 55 | 56 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 57 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 58 | 59 | void PLAY() { 60 | #ifndef ONLINE_JUDGE 61 | freopen("input.txt", "r", stdin); 62 | freopen("output.txt", "w", stdout); 63 | #endif 64 | cout << fixed << setprecision(10); 65 | ios::sync_with_stdio(0); 66 | cin.tie(0); 67 | cout.tie(0); 68 | } 69 | 70 | 71 | int main() { 72 | PLAY(); 73 | 74 | int t, test = 1; 75 | const ll MOD = 10000000000007; 76 | cin >> t; 77 | while (t--) { 78 | int l, m, n; 79 | cin >> l >> m >> n; 80 | ll tmp = 1, res = 0; 81 | for (int i = 1; i < m; i++) 82 | tmp = (tmp * (l*l - i + 1)) % MOD; 83 | for (int i = m; i <= n; i++) { 84 | tmp = (tmp * (l*l - i + 1)) % MOD; 85 | res = (res + tmp) % MOD; 86 | } 87 | cout << "Case " << test++ << ": " << res << endl; 88 | } 89 | 90 | return 0; 91 | } 92 | -------------------------------------------------------------------------------- /UVA/12748.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Geometry 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 54 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 55 | 56 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 57 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 58 | 59 | void PLAY() { 60 | #ifndef ONLINE_JUDGE 61 | freopen("input.txt", "r", stdin); 62 | freopen("output.txt", "w", stdout); 63 | #endif 64 | cout << fixed << setprecision(10); 65 | ios::sync_with_stdio(0); 66 | cin.tie(0); 67 | cout.tie(0); 68 | } 69 | 70 | struct point { 71 | int x, y; 72 | }; 73 | 74 | struct router { 75 | int x, y, r; 76 | }; 77 | 78 | 79 | int dist_sqr(point p, router r) { 80 | return (p.x - r.x)*(p.x - r.x) + (p.y - r.y)*(p.y - r.y); 81 | } 82 | 83 | int main() { 84 | PLAY(); 85 | 86 | int t; 87 | cin >> t; 88 | int test = 1; 89 | while (t--) { 90 | cout << "Case " << test++ << ":\n"; 91 | int n, m; 92 | cin >> n >> m; 93 | vector v(n); 94 | for (int i = 0; i < n; i++) 95 | cin >> v[i].x >> v[i].y >> v[i].r; 96 | for (int i = 0; i < m; i++) { 97 | point p; 98 | cin >> p.x >> p.y; 99 | bool ok = false; 100 | for (int j = 0; j < n && !ok; j++) { 101 | int d = dist_sqr(p, v[j]); 102 | if (v[j].r * v[j].r >= d) ok = true; 103 | } 104 | cout << (ok ? "Yes" : "No") << endl; 105 | } 106 | } 107 | 108 | return 0; 109 | } 110 | -------------------------------------------------------------------------------- /UVA/12952.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | */ 4 | 5 | #define _CRT_SECURE_NO_WARNINGS 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | using namespace std; 32 | 33 | #define PI 3.14159265359 34 | #define all(v) v.begin(),v.end() 35 | #define sortva(v) sort(all(v)) 36 | #define sortvd(v) sort(v.rbegin(),v.rend()) 37 | #define sortaa(a,n) sort(a,a+n) 38 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 39 | #define sfi1(v) scanf("%d",&v) 40 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 41 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 42 | #define sfll1(v) scanf("%I64d",&v); 43 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 44 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 45 | #define sfstr(v) scanf("%s", v); 46 | #define sz(v) v.size() 47 | #define ndl puts("") 48 | #define SS stringstream 49 | typedef long long ll; 50 | typedef unsigned long long ull; 51 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 52 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 53 | 54 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 55 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 56 | 57 | void PLAY() { 58 | #ifndef ONLINE_JUDGE 59 | freopen("input.txt", "r", stdin); 60 | freopen("output.txt", "w", stdout); 61 | #endif 62 | cout << fixed << setprecision(10); 63 | ios::sync_with_stdio(0); 64 | cin.tie(0); 65 | cout.tie(0); 66 | } 67 | 68 | 69 | 70 | int main() { 71 | PLAY(); 72 | 73 | int a, b; 74 | while (cin >> a >> b) 75 | cout << max(a, b) << endl; 76 | 77 | return 0; 78 | } 79 | -------------------------------------------------------------------------------- /UVA/1362.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | 60 | cout << fixed << setprecision(10); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | const int MOD = 1e9; 67 | ll dp[305][305]; 68 | 69 | string s; 70 | 71 | ll solve(int l, int r) { 72 | if (l == r) return 1; 73 | ll &ret = dp[l][r]; 74 | if (ret != -1) return ret; 75 | ret = 0; 76 | if (s[l] != s[r]) return 0; 77 | for (int k = l + 2; k <= r; k++) 78 | if (s[l] == s[k]) 79 | ret = (ret + solve(l + 1, k - 1) * solve(k, r)) % MOD; 80 | return ret; 81 | } 82 | 83 | int main() { 84 | PLAY(); 85 | 86 | while (cin >> s) { 87 | memset(dp, -1, sizeof dp); 88 | cout << solve(0, sz(s) - 1) << endl; 89 | } 90 | 91 | return 0; 92 | } 93 | -------------------------------------------------------------------------------- /UVA/350.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Implementation 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) (int)v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 54 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 55 | 56 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 57 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 58 | 59 | void PLAY() { 60 | #ifndef ONLINE_JUDGE 61 | freopen("input.txt", "r", stdin); 62 | freopen("output.txt", "w", stdout); 63 | #endif 64 | cout << fixed << setprecision(10); 65 | ios::sync_with_stdio(0); 66 | cin.tie(0); 67 | cout.tie(0); 68 | } 69 | 70 | int vis[10000]; 71 | 72 | int main() { 73 | PLAY(); 74 | 75 | int Z, I, M, L; 76 | int test = 1; 77 | while (cin >> Z >> I >> M >> L && (Z || I || M || L)) { 78 | cout << "Case " << test++ << ": "; 79 | memset(vis, -1, sizeof vis); 80 | int idx = 0; 81 | while (true) { 82 | if (vis[L] != -1) { 83 | cout << idx - vis[L] << endl; 84 | break; 85 | } 86 | vis[L] = idx; 87 | L = (Z*L + I) % M; 88 | idx++; 89 | } 90 | } 91 | 92 | return 0; 93 | } 94 | -------------------------------------------------------------------------------- /UVA/501.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Author: Ayman Salah 3 | 4 | Category: Implementation 5 | */ 6 | 7 | #define _CRT_SECURE_NO_WARNINGS 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | using namespace std; 34 | 35 | #define PI 3.14159265359 36 | #define all(v) v.begin(),v.end() 37 | #define sortva(v) sort(all(v)) 38 | #define sortvd(v) sort(v.rbegin(),v.rend()) 39 | #define sortaa(a,n) sort(a,a+n) 40 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 41 | #define sfi1(v) scanf("%d",&v) 42 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 43 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 44 | #define sfll1(v) scanf("%I64d",&v); 45 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 46 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 47 | #define sfstr(v) scanf("%s", v); 48 | #define sz(v) v.size() 49 | #define ndl puts("") 50 | #define SS stringstream 51 | typedef long long ll; 52 | typedef unsigned long long ull; 53 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 54 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 55 | 56 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 57 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 58 | 59 | void PLAY() { 60 | #ifndef ONLINE_JUDGE 61 | freopen("input.txt", "r", stdin); 62 | freopen("output.txt", "w", stdout); 63 | #endif 64 | cout << fixed << setprecision(10); 65 | ios::sync_with_stdio(0); 66 | cin.tie(0); 67 | cout.tie(0); 68 | } 69 | 70 | int main() { 71 | PLAY(); 72 | 73 | int t; 74 | cin >> t; 75 | while (t--) { 76 | int n, m; 77 | cin >> n >> m; 78 | vector v(n); 79 | for (int i = 0; i < n; i++) 80 | cin >> v[i]; 81 | multiset st; 82 | st.insert(v[0]); 83 | multiset::iterator it = st.begin(); 84 | int idx = 1, start = true; 85 | while(m--) { 86 | int u; 87 | cin >> u; 88 | while (u > idx) { 89 | st.insert(v[idx]); 90 | if (*it > v[idx]) it--; 91 | idx++; 92 | } 93 | if (start) it = st.begin(), start = false; 94 | else it++; 95 | cout << *it << endl; 96 | } 97 | if(t) cout << endl; 98 | } 99 | 100 | return 0; 101 | } 102 | -------------------------------------------------------------------------------- /UVA/542.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define flush fflush(stdout) 43 | #define SS stringstream 44 | typedef long long ll; 45 | typedef unsigned long long ull; 46 | typedef long double ld; 47 | 48 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 49 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 50 | 51 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 52 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 53 | 54 | void PLAY() { 55 | #ifndef ONLINE_JUDGE 56 | freopen("input.txt", "r", stdin); 57 | freopen("output.txt", "w", stdout); 58 | #endif 59 | 60 | cout << fixed << setprecision(2); 61 | ios::sync_with_stdio(0); 62 | cin.tie(0); 63 | cout.tie(0); 64 | } 65 | 66 | double dp[50][50]; 67 | int p[50][50]; 68 | 69 | void build(int cur, int l, int r) { 70 | if (l == r) { 71 | dp[cur][l] = 1; 72 | return; 73 | } 74 | int left = cur * 2; 75 | int right = cur * 2 + 1; 76 | int mid = (l + r) / 2; 77 | build(left, l, mid); 78 | build(right, mid + 1, r); 79 | for (int i = l; i <= mid; i++) 80 | for (int j = mid + 1; j <= r; j++) { 81 | dp[cur][i] += dp[left][i] * dp[right][j] * p[i][j] / 100.0; 82 | dp[cur][j] += dp[left][i] * dp[right][j] * p[j][i] / 100.0; 83 | } 84 | } 85 | 86 | int main() { 87 | PLAY(); 88 | 89 | string name[20]; 90 | for (int i = 1; i <= 16; i++) 91 | cin >> name[i]; 92 | for (int i = 1; i <= 16; i++) 93 | for (int j = 1; j <= 16; j++) 94 | cin >> p[i][j]; 95 | build(1, 1, 16); 96 | for (int i = 1; i <= 16; i++) 97 | printf("%-10s p=%.2lf%%\n", name[i].c_str(), dp[1][i] * 100.0); 98 | 99 | return 0; 100 | } 101 | -------------------------------------------------------------------------------- /UVA/562.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | #define PI 3.14159265359 28 | #define all(v) v.begin(),v.end() 29 | #define sortva(v) sort(all(v)) 30 | #define sortvd(v) sort(v.rbegin(),v.rend()) 31 | #define sortaa(a,n) sort(a,a+n) 32 | #define sortad(a,n) sort(a,a+n),reverse(a,a+n) 33 | #define sfi1(v) scanf("%d",&v) 34 | #define sfi2(v1,v2) scanf("%d %d",&v1,&v2) 35 | #define sfi3(v1,v2,v3) scanf("%d %d %d",&v1,&v2,&v3) 36 | #define sfll1(v) scanf("%I64d",&v); 37 | #define sfll2(v1,v2) scanf("%I64d %I64d",&v1,&v2) 38 | #define sfll3(v1,v2,v3) scanf("%I64d %I64d %I64d",&v1,&v2,&v3) 39 | #define sfstr(v) scanf("%s", v); 40 | #define sz(v) (int)v.size() 41 | #define ndl puts("") 42 | #define SS stringstream 43 | typedef long long ll; 44 | typedef unsigned long long ull; 45 | typedef long double ld; 46 | 47 | int dx[] = { 0, 0, 1, -1, 1, -1, 1, -1 }; 48 | int dy[] = { 1, -1, 0, 0, -1, 1, 1, -1 }; 49 | 50 | ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } 51 | ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; } 52 | 53 | void PLAY() { 54 | #ifndef ONLINE_JUDGE 55 | freopen("input.txt", "r", stdin); 56 | freopen("output.txt", "w", stdout); 57 | #endif 58 | cout << fixed << setprecision(10); 59 | ios::sync_with_stdio(0); 60 | cin.tie(0); 61 | cout.tie(0); 62 | } 63 | 64 | int n; 65 | int a[105]; 66 | 67 | int total; 68 | 69 | int dp[105][50005]; 70 | 71 | 72 | int solve(int idx, int cur_sum) { 73 | if (idx == n) return abs(cur_sum - (total - cur_sum)); 74 | int &ret = dp[idx][cur_sum]; 75 | if (ret != -1) return ret; 76 | ret = min(solve(idx + 1, cur_sum), solve(idx + 1, cur_sum + a[idx])); 77 | return ret; 78 | } 79 | 80 | 81 | void clear() { 82 | total = 0; 83 | memset(dp, -1, sizeof dp); 84 | } 85 | 86 | int main() { 87 | PLAY(); 88 | 89 | 90 | int t; 91 | cin >> t; 92 | while (t--) { 93 | clear(); 94 | cin >> n; 95 | for (int i = 0; i < n; i++) { 96 | cin >> a[i]; 97 | total += a[i]; 98 | } 99 | cout << solve(0, 0) << endl; 100 | } 101 | 102 | return 0; 103 | } 104 | --------------------------------------------------------------------------------