Submission #501769

#TimeUsernameProblemLanguageResultExecution timeMemory
501769fabijan_cikacCards (LMIO19_korteles)C++17
16 / 100
1089 ms35924 KiB
#include <bits/stdc++.h> using namespace std; typedef long long int ll; int n; map<string, int> m; ll sol = 0; vector<string> v; int dio(string a, string b){ for (int i = 0; i < a.size(); ++i){ if (a[i] != '*' && a[i] != b[i]) return 0; } return 1; } void solve(string a){ for (int i = 1; i < 16; ++i){ string s = "****"; int cnt = 0; for (int j = 0; j < 4; ++j){ if (i & (1 << j)) ++cnt; } if (i & 1){ if ((s[3] != '*' && s[3] != a[0]) || (s[2] != '*' && s[2] != a[1])) continue; s[3] = a[0]; s[2] = a[1]; } if (i & 2){ if ((s[0] != '*' && s[0] != a[1]) || (s[3] != '*' && s[3] != a[2])) continue; s[0] = a[1]; s[3] = a[2]; } if (i & 4){ if ((s[0] != '*' && s[0] != a[3]) || (s[1] != '*' && s[1] != a[2])) continue; s[0] = a[3]; s[1] = a[2]; } if (i & 8){ if ((s[1] != '*' && s[1] != a[0]) || (s[2] != '*' && s[2] != a[3])) continue; s[1] = a[0]; s[2] = a[3]; } if (cnt & 1) sol += (m[s] - dio(a, s)); else sol -= (m[s] - dio(a, s)); } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n; v.resize(n); for (int i = 0; i < n; ++i){ string b; cin >> v[i] >> b; v[i].push_back(b[1]); v[i].push_back(b[0]); for (int j = 0; j < 16; ++j){ string s; for (int k = 0; k < 4; ++k){ if (j & (1 << k)) s.push_back(v[i][k]); else s.push_back('*'); } ++m[s]; } } for (int i = 0; i < n; ++i) solve(v[i]); cout << sol / 2; return 0; }

Compilation message (stderr)

korteles.cpp: In function 'int dio(std::string, std::string)':
korteles.cpp:13:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |     for (int i = 0; i < a.size(); ++i){
      |                     ~~^~~~~~~~~~
#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...