제출 #1244117

#제출 시각아이디문제언어결과실행 시간메모리
1244117moondarkside저울 (IOI15_scales)C++20
컴파일 에러
0 ms0 KiB
int BestComb(vector<vector<int>> Combs) {
    if(Combs.size()==1){
        int W[6];
        for(int i=0;i<6;i++){
            W[i]=Combs[0][i];
        }
        answer(W);
        return 0;
    }
	vector<int> BestW;
	int bestSplit=Combs.size();
	vector<vector<int>> A;
	vector<vector<int>> B;
	vector<vector<int>> C;
	for(int a=0; a<6; a++) {
		for(int b=a+1; b<6; b++) {
			for(int c=b+1; c<6; c++) {
				vector<vector<int>> Am;
				vector<vector<int>> Bm;
				vector<vector<int>> Cm;
				for(int i=0; i<Combs.size(); i++) {



					if(Combs[i][a]>Combs[i][b] && Combs[i][a]>Combs[i][c]) {
						Am.push_back(Combs[i]);
					}

					if(Combs[i][b]>Combs[i][c] && Combs[i][b]>Combs[i][c]) {
						Bm.push_back(Combs[i]);
					}

					if(Combs[i][c]>Combs[i][b] && Combs[i][c]>Combs[i][a]) {
						Cm.push_back(Combs[i]);
					}



				}
				int size=max(Am.size(),max(Bm.size(),Cm.size()));
				if(size<bestSplit) {
					bestSplit=size;
					A=Am;
					B=Bm;
					C=Cm;
					BestW= {2,a,b,c};
				}
			}
		}
	}


	for(int a=0; a<6; a++) {
		for(int b=a+1; b<6; b++) {
			for(int c=b+1; c<6; c++) {
				vector<vector<int>> Am;
				vector<vector<int>> Bm;
				vector<vector<int>> Cm;
				for(int i=0; i<Combs.size(); i++) {



					if(Combs[i][a]<Combs[i][b] && Combs[i][a]<Combs[i][c]) {
						Am.push_back(Combs[i]);
					}

					if(Combs[i][b]<Combs[i][c] && Combs[i][b]<Combs[i][a]) {
						Bm.push_back(Combs[i]);
					}

					if(Combs[i][c]<Combs[i][b] && Combs[i][c]<Combs[i][a]) {
						Cm.push_back(Combs[i]);
					}



				}
				int size=max(Am.size(),max(Bm.size(),Cm.size()));
				if(size<bestSplit) {
					bestSplit=size;
					A=Am;
					B=Bm;
					C=Cm;
					BestW= {0,a,b,c};
				}
			}
		}
	}

	for(int a=0; a<6; a++) {
		for(int b=a+1; b<6; b++) {
			for(int c=b+1; c<6; c++) {
				vector<vector<int>> Am;
				vector<vector<int>> Bm;
				vector<vector<int>> Cm;
				for(int i=0; i<Combs.size(); i++) {



					if(Combs[i][a]<Combs[i][b] && Combs[i][a]>Combs[i][c]) {
						Am.push_back(Combs[i]);
					}

					if(Combs[i][a]>Combs[i][b] && Combs[i][a]<Combs[i][c]) {
						Am.push_back(Combs[i]);
					}

					if(Combs[i][b]<Combs[i][c] && Combs[i][b]>Combs[i][a]) {
						Bm.push_back(Combs[i]);
					}

					if(Combs[i][b]>Combs[i][c] && Combs[i][b]<Combs[i][a]) {
						Bm.push_back(Combs[i]);
					}

					if(Combs[i][c]<Combs[i][b] && Combs[i][c]>Combs[i][a]) {
						Cm.push_back(Combs[i]);
					}

					if(Combs[i][c]>Combs[i][b] && Combs[i][c]<Combs[i][a]) {
						Cm.push_back(Combs[i]);
					}



				}
				int size=max(Am.size(),max(Bm.size(),Cm.size()));
				if(size<bestSplit) {
					bestSplit=size;
					A=Am;
					B=Bm;
					C=Cm;
					BestW= {1,a,b,c};
				}
			}
		}
	}

	for(int d=0; d<6; d++) {
		for(int a=0; a<6; a++) {
			for(int b=a+1; b<6; b++) {
				for(int c=b+1; c<6; c++) {
					if(a!=d && b!=d && c!=d) {
						vector<vector<int>> Am;
						vector<vector<int>> Bm;
						vector<vector<int>> Cm;
						for(int i=0; i<Combs.size(); i++) {



							vector<int> Temp={Combs[i][a],Combs[i][b],Combs[i][c],Combs[i][d]};
							
							sort(Temp.begin(),Temp.end());
							
							int index=0;
							for(int j=0;j<4;j++){
							    if (Temp[j]==Combs[i][d]){
							        index=j;
							    }
							}
							
							
							if(index<3){
							    index++;
							}
							else{
							    index=0;
							}
							
							if(Temp[index]==Combs[i][a]){
							    Am.push_back(Combs[i]);
							}
							
							if(Temp[index]==Combs[i][b]){
							    Bm.push_back(Combs[i]);
							}
							
							if(Temp[index]==Combs[i][c]){
							    Cm.push_back(Combs[i]);
							}



						}
						int size=max(Am.size(),max(Bm.size(),Cm.size()));
						if(size<bestSplit) {
							bestSplit=size;
							A=Am;
					        B=Bm;
					        C=Cm;
							BestW= {3,a,b,c,d};
						}
					}
				}
			}
		}
	}

    int best=0;
    if(BestW[0]==0){
        best=getLightest(BestW[1],BestW[2],BestW[3]);
    }
    if(BestW[0]==1){
        best=getMedian(BestW[1],BestW[2],BestW[3]);
    }
    if(BestW[0]==2){
        best=getHeaviest(BestW[1],BestW[2],BestW[3]);
    }
    if(BestW[0]==3){
        best=getNextLightest(BestW[1],BestW[2],BestW[3],BestW[4]);
    }

    if(best==BestW[1]){
        return BestComb(A)+1;
    }

    if(best==BestW[2]){
        return BestComb(B)+1;
    }
    
    if(best==BestW[3]){
        return BestComb(C)+1;
    }

	return 1;
}


void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
	if(T.size()==6) {
		Perms.push_back(T);
		return;
	}

	for(int i=0; i<6; i++) {
		if(!Chosen[i]) {
			Chosen[i]=true;
			T.push_back(i);
			buildPerm(Chosen,Perms,T);
			T.pop_back();
			Chosen[i]=false;

		}
	}



}

void orderCoins() {
	vector<vector<int>> Perms;
	vector<bool> C(6);
	buildPerm(C,Perms,vector<int>());
	BestComb(Perms);

}

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

scales.cpp:1:21: error: 'vector' was not declared in this scope
    1 | int BestComb(vector<vector<int>> Combs) {
      |                     ^~~~~~
scales.cpp:1:21: error: 'vector' was not declared in this scope
scales.cpp:1:21: error: 'vector' was not declared in this scope
scales.cpp:1:21: error: 'vector' was not declared in this scope
scales.cpp:1:21: error: 'vector' was not declared in this scope
scales.cpp:1:21: error: 'vector' was not declared in this scope
scales.cpp:1:21: error: 'vector' was not declared in this scope
scales.cpp:1:21: error: 'vector' was not declared in this scope
scales.cpp:1:21: error: 'vector' was not declared in this scope
scales.cpp:1:14: error: 'vector' was not declared in this scope
    1 | int BestComb(vector<vector<int>> Combs) {
      |              ^~~~~~
scales.cpp:1:21: error: 'vector' was not declared in this scope
    1 | int BestComb(vector<vector<int>> Combs) {
      |                     ^~~~~~
scales.cpp:1:28: error: expected primary-expression before 'int'
    1 | int BestComb(vector<vector<int>> Combs) {
      |                            ^~~
scales.cpp:229:6: error: variable or field 'buildPerm' declared void
  229 | void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
      |      ^~~~~~~~~
scales.cpp:229:16: error: 'vector' was not declared in this scope
  229 | void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
      |                ^~~~~~
scales.cpp:229:23: error: expected primary-expression before 'bool'
  229 | void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
      |                       ^~~~
scales.cpp:229:43: error: 'vector' was not declared in this scope
  229 | void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
      |                                           ^~~~~~
scales.cpp:229:43: error: 'vector' was not declared in this scope
scales.cpp:229:43: error: 'vector' was not declared in this scope
scales.cpp:229:43: error: 'vector' was not declared in this scope
scales.cpp:229:43: error: 'vector' was not declared in this scope
scales.cpp:229:36: error: 'vector' was not declared in this scope
  229 | void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
      |                                    ^~~~~~
scales.cpp:229:43: error: 'vector' was not declared in this scope
  229 | void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
      |                                           ^~~~~~
scales.cpp:229:50: error: expected primary-expression before 'int'
  229 | void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
      |                                                  ^~~
scales.cpp:229:63: error: 'vector' was not declared in this scope
  229 | void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
      |                                                               ^~~~~~
scales.cpp:229:70: error: expected primary-expression before 'int'
  229 | void buildPerm(vector<bool> Chosen,vector<vector<int>>& Perms,vector<int> T) {
      |                                                                      ^~~
scales.cpp: In function 'void orderCoins()':
scales.cpp:251:16: error: 'vector' was not declared in this scope
  251 |         vector<vector<int>> Perms;
      |                ^~~~~~
scales.cpp:251:23: error: expected primary-expression before 'int'
  251 |         vector<vector<int>> Perms;
      |                       ^~~
scales.cpp:252:16: error: expected primary-expression before 'bool'
  252 |         vector<bool> C(6);
      |                ^~~~
scales.cpp:253:19: error: 'C' was not declared in this scope
  253 |         buildPerm(C,Perms,vector<int>());
      |                   ^
scales.cpp:253:21: error: 'Perms' was not declared in this scope
  253 |         buildPerm(C,Perms,vector<int>());
      |                     ^~~~~
scales.cpp:253:34: error: expected primary-expression before 'int'
  253 |         buildPerm(C,Perms,vector<int>());
      |                                  ^~~
scales.cpp:253:9: error: 'buildPerm' was not declared in this scope
  253 |         buildPerm(C,Perms,vector<int>());
      |         ^~~~~~~~~
scales.cpp:254:17: error: 'BestComb' cannot be used as a function
  254 |         BestComb(Perms);
      |         ~~~~~~~~^~~~~~~