Submission #407212

#TimeUsernameProblemLanguageResultExecution timeMemory
407212LptN21Topovi (COCI15_topovi)C++14
120 / 120
1247 ms33648 KiB
#include <bits/stdc++.h> using namespace std; #define fastIO ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL); #define FF first #define SS second #define pb push_back #define sz(x) (int)x.size() #define oo 1e9 #define eps 1e-9 #define PI acos(-1.0) #define lb lower_bound #define ub upper_bound typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> ii; const int N = 1e5+7, M=13+7; const int MOD = 1e9+7; int n, m, k, t; ll ans=0; map<int, int> rx, cx; map<int, int> slr, slc; map<ii, int> rook; void mv(int r, int c, int v) { ans-=t-slr[cx[c]], ans-=t-slc[rx[r]]; if(rx[r]!=cx[c]) ans+=1; slr[rx[r]]--, slc[cx[c]]--; rx[r]^=v, cx[c]^=v; slr[rx[r]]++, slc[cx[c]]++; ans+=t-slr[cx[c]], ans+=t-slc[rx[r]]; if(rx[r]!=cx[c]) ans-=1; rook[ii(r, c)]^=v; } signed main() { //freopen("test.inp", "r", stdin); //freopen("test.out", "w", stdout); //fastIO; scanf("%d%d%d", &t, &n, &m); int x, y, u, v;slr[0]=slc[0]=t; for(int i=1;i<=n;i++) { scanf("%d%d%d", &x, &y, &k); mv(x, y, k); } for(int w, i=1;i<=m;i++) { scanf("%d%d%d%d", &x, &y, &u, &v); w=rook[ii(x, y)]; mv(x, y, w), mv(u, v, w); printf("%lld\n", ans); } return 0; } /* stuff you should look for - int overflow, array bounds - special cases (n=1?) - do smth instead of do nothing and stay organized - WRITE STUFF DOWN - DONT JUST STICK ON ONE APPROACH */

Compilation message (stderr)

topovi.cpp: In function 'int main()':
topovi.cpp:40:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |     scanf("%d%d%d", &t, &n, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~
topovi.cpp:43:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   43 |         scanf("%d%d%d", &x, &y, &k);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~
topovi.cpp:47:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |         scanf("%d%d%d%d", &x, &y, &u, &v);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...