제출 #1143085

#제출 시각아이디문제언어결과실행 시간메모리
1143085ag_1204Mosaic (IOI24_mosaic)C++20
컴파일 에러
0 ms0 KiB
#include "mosaic.h"
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define vi vector<int>
#define pb push_back

vi mosaic(vi X,vi Y,vi T,vi B,vi L,vi R) {
  int n=size(X),q=size(T);
	vi C(q,0);
	vi fst;
	for (int i=n-1;i>0;i--) fst.pb(Y[i]);
	for (int i=0;i<n;i++) fst.pb(X[i]);
	for (int s=0;s<10;s++) {
		vi sum(2*(n-s),0);
		partial_sum(fst.begin(),fst.end(),sum.begin()+1);
		for (int i=0;i<q;i++) {
			if (T[i]==s) {
				C[i]+=sum[R[i]-T[i]+n-s]-sum[L[i]-T[i]+n-s-1];
				T[i]++;
			}
			if (L[i]==s) {
				C[i]+=sum[L[i]-T[i]+n-s]-sum[L[i]-B[i]+n-s-1];
				L[i]++;
			}
		}
		if (s==n-1) return C;
		vi snd(2*(n-s)-3,0);
		for (int i=0;i<n-s-1;i++) {
		  if (i) {
		    snd[i+n-s-2]=!fst[i+n-s] && !snd[i+n-s-3];
		    snd[n-s-2-i]=!fst[n-s-i-2] && !snd[n-s-1-i];
		  } else {
		    snd[i+n-s-2]=!fst[i+n-s] && !fst[n-s-2];
			  snd[n-s-2-i]=!fst[n-s-i-2] && !fst[n-s];
		  }
		}
		fst=snd;
	}
	vi sum(2*n-20,0);
	partial_sum(fst.begin(),fst.end(),sum.begin()+1);
	partial_sum(sum.begin(),sum.end(),sum.begin());
	for (int i=0;i<q;i++) {
		C[i]+=sum[R[i]-T[i]+n-10];
		C[i]-=sum[L[i]-T[i]+n-11]+sum[R[i]-B[i]+n-11];
		if (L[i]-B[i]+n-12>=0) C[i]+=sum[L[i]-B[i]+n-12];
	}
	return C;
}

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

/usr/bin/ld: /tmp/ccF1GsKc.o: in function `main':
grader.cpp:(.text.startup+0x43d): undefined reference to `mosaic(std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status