제출 #476560

#제출 시각아이디문제언어결과실행 시간메모리
476560AdamGS저장 (Saveit) (IOI10_saveit)C++14
50 / 100
263 ms13360 KiB
#include "grader.h" #include "encoder.h" #include<bits/stdc++.h> using namespace std; typedef long double ld; typedef long long ll; #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() const int LIM=1e3+7, INF=1e9+7; vector<ll>V[LIM], P; ll oc[LIM], odw[LIM], odl[LIM]; void DFS(int x) { P.pb(x); odw[x]=1; sort(all(V[x])); for(auto i : V[x]) if(!odw[i]) { oc[i]=x; DFS(i); } } void encode(int n, int h, int m, int *a, int *b) { rep(i, m) { V[a[i]].pb(b[i]); V[b[i]].pb(a[i]); } DFS(0); rep(i, n-1) rep(j, 10) encode_bit((oc[i+1]&(1<<j))>0); rep(i, h) { rep(j, n) odl[j]=INF; queue<int>q; q.push(i); odl[i]=0; while(!q.empty()) { int p=q.front(); q.pop(); for(auto j : V[p]) if(odl[j]>odl[p]+1) { odl[j]=odl[p]+1; q.push(j); } } rep(j, 10) encode_bit((odl[0]&(1<<j))>0); rep(j, P.size()-1) { int x=odl[P[j+1]]-odl[oc[P[j+1]]]+1; rep(l, 2) encode_bit((x&(1<<l))>0); } } }
#include "grader.h" #include "decoder.h" #include<bits/stdc++.h> using namespace std; typedef long double ld; #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() const int LIM=1e3+7; vector<int>V[LIM], P; int odw[LIM], oc[LIM], odl[LIM]; void DFS(int x) { P.pb(x); odw[x]=1; sort(all(V[x])); for(auto i : V[x]) if(!odw[i]) DFS(i); } void decode(int n, int h) { rep(i, n-1) { int x=0; rep(j, 10) x+=decode_bit()*(1<<j); oc[i+1]=x; V[i+1].pb(x); V[x].pb(i+1); } DFS(0); rep(i, h) { rep(j, n) odl[j]=0; rep(j, 10) odl[0]+=decode_bit()*(1<<j); rep(j, P.size()-1) { int x=0; rep(l, 2) x+=decode_bit()*(1<<l); --x; odl[P[j+1]]=odl[oc[P[j+1]]]+x; } rep(j, n) hops(i, j, odl[j]); } }

컴파일 시 표준 에러 (stderr) 메시지

encoder.cpp: In function 'void encode(int, int, int, int*, int*)':
encoder.cpp:7:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    7 | #define rep(a, b) for(int a = 0; a < (b); ++a)
      |                                    ^
encoder.cpp:44:3: note: in expansion of macro 'rep'
   44 |   rep(j, P.size()-1) {
      |   ^~~

decoder.cpp: In function 'void decode(int, int)':
decoder.cpp:6:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    6 | #define rep(a, b) for(int a = 0; a < (b); ++a)
      |                                    ^
decoder.cpp:32:3: note: in expansion of macro 'rep'
   32 |   rep(j, P.size()-1) {
      |   ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...