Submission #978600

#TimeUsernameProblemLanguageResultExecution timeMemory
978600vjudge1Council (JOI23_council)C++17
0 / 100
87 ms25652 KiB
#include <time.h> #include <cstdlib> #include <stack> #include <numeric> #include <unordered_map> #include <unordered_set> #include <iomanip> #include <map> #include <set> #include <iterator> #include <deque> #include <queue> #include <sstream> #include <array> #include <string> #include <tuple> #include <chrono> #include <cassert> #include <cstdio> #include <cstring> #include <list> #include <iostream> #include <vector> #include <cmath> #include <algorithm> #include <bitset> using namespace std; int tt = 1, n, m; int A[300001][21], cnt[22]; map<vector<int>, int> mp; int f[10]; int main(){ ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); cin >> n >> m; for(int i = 1; i <= n; i++){ vector<int> v; for(int j = 1; j <= m; j++){ cin >> A[i][j]; cnt[j] += A[i][j]; v.push_back(A[i][j]); } if(m == 2) mp[v]++; } vector<int> v1, v2, v3, v4; v1 = {0, 0}; v2 = {1, 0}; v3 = {0, 1}; v4 = {1, 1}; f[0] = mp[v1]; f[1] = mp[v2]; f[2] = mp[v3]; f[3] = mp[v4]; for(int i = 1; i <= n; i++){ int mx = 0; if(m == 2){ vector<int> vv; for(int j = 1; j <= m; j++) vv.push_back(A[i][j]); int ind = 0; if(vv == v1){ f[0]--; ind = 0; } if(vv == v2){ f[1]--; ind = 1; } if(vv == v3){ f[2]--; ind = 2; } if(vv == v4){ f[3]--; ind = 3; } int f1 = 0, f2 = 0, kol = 2; if(cnt[1] - A[i][1] == n / 2) f1 = 1; if(cnt[1] - A[i][1] < n / 2) f1 = 2; if(cnt[2] - A[i][2] == n / 2) f2 = 1; if(cnt[2] - A[i][2] < n / 2) f2 = 2; if(f1 == 0 && f2 == 0){ cout << 2 << "\n"; f[ind]++; continue; } if(f1 == 2) kol--; if(f2 == 2) kol--; if(f[0] > 0){ cout << kol << "\n"; f[ind]++; continue; } if(kol == 0){ cout << kol << "\n"; f[ind]++; continue; } if(f1 == 1 && f[2] > 0){ if(f2 == 1) kol--; cout << kol << "\n"; f[ind]++; continue; } if(f2 == 1 && f[1] > 0){ if(f1 == 1) kol--; cout << kol << "\n"; f[ind]++; continue; } // cout << i << " " << f1 << " " << f2 << " " << kol << "\n"; if(f1 == 1) kol--; if(f2 == 1) kol--; cout << kol << "\n"; f[ind]++; continue; } // for(int j = 1; j <= n; j++){ // if(i == j) continue; // int kol = 0; // for(int ind = 1; ind <= m; ind++){ // if(cnt[ind] - A[i][ind] - A[j][ind] >= n / 2) // kol++; // } // mx = max(mx, kol); // } // cout << mx << "\n"; } }

Compilation message (stderr)

council.cpp: In function 'int main()':
council.cpp:57:13: warning: unused variable 'mx' [-Wunused-variable]
   57 |         int mx = 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...