제출 #786068

#제출 시각아이디문제언어결과실행 시간메모리
786068vjudge1Cards (LMIO19_korteles)C++17
36 / 100
1078 ms48960 KiB
#include<bits/stdc++.h> using namespace std; long long n, ans; char grid[500005][2][2]; map<vector<char>, int> up, lt, rt, dn, lu, ur, rd, dl, all; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for(int i=0; i<n; i++){ for(int j=0; j<2; j++){ for(int k=0; k<2; k++){ cin >> grid[i][j][k]; } } } ans=0; for(int i=0; i<n; i++){ char a=grid[i][0][0], b=grid[i][0][1], c=grid[i][1][0], d=grid[i][1][1]; ans+=up[{c, d}]+rt[{a, c}]+dn[{a, b}]+lt[{b, d}]; ans-=all[{c, d, a, b}]+all[{b, a, d, c}]; if(a==d) ans-=ur[{c, a, c}]+dl[{b, a, b}]; if(b==c) ans-=lu[{d, b, d}]+rd[{a, b, a}]; if(a==d && b==c) ans+=3*all[{b, a, a, b}]; up[{a, b}]++; rt[{b, d}]++; dn[{c, d}]++; lt[{a, c}]++; lu[{c, a, b}]++; ur[{a, b, d}]++; rd[{b, d, c}]++; dl[{d, c, a}]++; all[{a, b, c, d}]++; } cout << ans << endl; }
#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...