Submission #407209

# Submission time Handle Problem Language Result Execution time Memory
407209 2021-05-18T16:03:51 Z LptN21 Topovi (COCI15_topovi) C++14
6 / 120
1239 ms 39052 KB
#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-=n-slr[cx[c]], ans-=n-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+=n-slr[cx[c]], ans+=n-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]=n;
    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("%d\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

topovi.cpp: In function 'int main()':
topovi.cpp:50:18: warning: format '%d' expects argument of type 'int', but argument 2 has type 'll' {aka 'long long int'} [-Wformat=]
   50 |         printf("%d\n", ans);
      |                 ~^     ~~~
      |                  |     |
      |                  int   ll {aka long long int}
      |                 %lld
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 time Memory Grader output
1 Incorrect 1 ms 316 KB Output isn't correct
2 Correct 1 ms 204 KB Output is correct
3 Incorrect 1 ms 292 KB Output isn't correct
4 Incorrect 1 ms 204 KB Output isn't correct
5 Incorrect 1 ms 204 KB Output isn't correct
6 Incorrect 137 ms 5900 KB Output isn't correct
7 Incorrect 113 ms 5368 KB Output isn't correct
8 Incorrect 85 ms 4276 KB Output isn't correct
9 Incorrect 88 ms 4384 KB Output isn't correct
10 Incorrect 102 ms 4676 KB Output isn't correct
11 Incorrect 1203 ms 38808 KB Output isn't correct
12 Incorrect 1214 ms 38740 KB Output isn't correct
13 Incorrect 1205 ms 38896 KB Output isn't correct
14 Incorrect 1210 ms 38952 KB Output isn't correct
15 Incorrect 1227 ms 38768 KB Output isn't correct
16 Incorrect 1239 ms 38852 KB Output isn't correct
17 Incorrect 1217 ms 38900 KB Output isn't correct
18 Incorrect 1237 ms 38692 KB Output isn't correct
19 Incorrect 1226 ms 38812 KB Output isn't correct
20 Incorrect 1221 ms 39052 KB Output isn't correct