Submission #501919

#TimeUsernameProblemLanguageResultExecution timeMemory
501919lovrotCards (LMIO19_korteles)C++11
100 / 100
71 ms4900 KiB
#include <bits/stdc++.h> #define X first #define Y second #define ll long long #define pii pair<int, int> #define pb push_back #define vec vector #define siz size() #define pri(i, poc, n, pov) for(int i = (int) poc; i < (int) n; i += (int) pov) #define od(i, poc, n, pov) for(int i = (int) poc; i > (int) n; i -= (int) pov) using namespace std; const ll INF = 1e18; const int LOG = 20; const int OFF = (1 << LOG); const int MOD = 1e9 + 7; const int lx[8] = {1, -1, 0, 0, -1, 1, 1, -1}; const int ly[8] = {0, 0, 1, -1, -1, 1, -1, 1}; const int N = 1e5 + 10; int abs(int x){ if(x < 0) return -x; return x; } ll a[27][27], b[27][27], c[27][27], d[27][27]; ll bc[27][27][27], cd[27][27][27], ad[27][27][27], ab[27][27][27]; ll all[27][27][27][27]; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); setprecision(9); int n; cin >> n; ll ans = 0; pri(i, 0, n, 1){ char s1, s2, s3, s4; cin >> s1 >> s2 >> s3 >> s4; int x = s1 - 'A'; int y = s2 - 'A'; int z = s3 - 'A'; int w = s4 - 'A'; ans += c[x][y] + d[z][x] + a[w][z] + b[y][w]; if(y == z){ ans -= ab[w][z][w]; ans -= cd[x][y][x]; } if(x == w){ ans -= bc[y][w][y]; ans -= ad[z][x][z]; } if(x == w && y == z) ans += 3 * all[x][y][x][y]; ans -= all[w][z][x][y]; ans -= all[x][y][w][z]; a[y][x]++; b[x][z]++; c[z][w]++; d[w][y]++; ab[y][x][z]++; ad[w][y][x]++; bc[x][z][w]++; cd[z][w][y]++; all[y][x][z][w]++; } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...