답안 #407211

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
407211 2021-05-18T16:08:12 Z LptN21 Topovi (COCI15_topovi) C++14
6 / 120
1225 ms 33124 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-=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]=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("%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

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);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Correct 2 ms 204 KB Output is correct
3 Incorrect 1 ms 204 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 139 ms 5188 KB Output isn't correct
7 Incorrect 109 ms 4652 KB Output isn't correct
8 Incorrect 85 ms 3848 KB Output isn't correct
9 Incorrect 88 ms 3940 KB Output isn't correct
10 Incorrect 100 ms 4112 KB Output isn't correct
11 Incorrect 1205 ms 33012 KB Output isn't correct
12 Incorrect 1225 ms 32992 KB Output isn't correct
13 Incorrect 1221 ms 33112 KB Output isn't correct
14 Incorrect 1212 ms 33124 KB Output isn't correct
15 Incorrect 1190 ms 33040 KB Output isn't correct
16 Incorrect 1218 ms 33076 KB Output isn't correct
17 Incorrect 1205 ms 32852 KB Output isn't correct
18 Incorrect 1186 ms 33040 KB Output isn't correct
19 Incorrect 1218 ms 33092 KB Output isn't correct
20 Incorrect 1212 ms 33024 KB Output isn't correct