Submission #585184

#TimeUsernameProblemLanguageResultExecution timeMemory
585184TimDee게임 (IOI14_game)C++14
0 / 100
1 ms212 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;

#define forn(i,n) for (int i=0; i<n; ++i) 

vector<vector<int>> cnt;

struct DSU {
 
    vector<int> p;
    vector<int> r;
    vector<int> q;
    vector<int> o;
    
    DSU(int n) {
        p.assign(n,0);
        r.assign(n,0);
        forn(i,n) p[i]=i;
        q.assign(n,n-1);
        o.assign(n,0);
    }
    
    int get(int i) {
           
        return p[i]==i ? i : get(p[i]);
        
    }
    
    void uni(int a, int b) {
        
        a=get(a);
        b=get(b);
        if (a==b) return;
        
        if (r[a]==r[b]) r[a]++;
        
        if (r[a]>r[b]) {
            swap(a,b);
        }

        p[a]=b;
        q[b]+=q[a]-2;
        o[b]+=o[a]-1;

        forn(i,cnt.size()) {
          if (i==a || i==b) continue;
          cnt[i][b]+=cnt[i][a];
          cnt[b][i]+=cnt[a][i];
        } 
    }

    void substract(int a, int b) {
      a=get(a);
      b=get(b);
      --q[a];
      --q[b];
    }

    int getq(int a) {
      a=get(a);
      return q[a];
    }

    int geto(int a) {
      a=get(a);
      return o[a];
    }

    void inco(int a) {
      a=get(a);
      o[a]++;
    }
    
};

DSU dsu(0);
int q;
int n;

void initialize(int N) {
  n=N;
  DSU paiu(n);
  dsu=paiu;
  q=n*(n-1)/2;
  cnt.resize(n);
  forn(i,n) forn(j,n) cnt[i].push_back(i!=j);
  //cout<<"!"<<dsu.p.size()<<'\n';
}

int hasEdge(int u, int v) {

  if (cnt[u][v]>1 && cnt[v][u]>1) {
    --cnt[u][v], --cnt[v][u];
    return 0;
  } else {
    dsu.uni(u,v);
    return 1;
  }

}

Compilation message (stderr)

game.cpp: In member function 'void DSU::uni(int, int)':
game.cpp:5:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define forn(i,n) for (int i=0; i<n; ++i)
......
   46 |         forn(i,cnt.size()) {
      |              ~~~~~~~~~~~~         
game.cpp:46:9: note: in expansion of macro 'forn'
   46 |         forn(i,cnt.size()) {
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...