제출 #150331

#제출 시각아이디문제언어결과실행 시간메모리
150331잉여로운 고3 (#200)On the Grid (FXCUP4_grid)C++17
43 / 100
13 ms384 KiB
#include <bits/stdc++.h>

#include "grid.h"

using namespace std;


int ask(vector <int> &X, vector <int> &Y)
{
	vector <int> Z = X;
	int i;
	
	for(i=0; i<Y.size(); i++){
		Z.push_back(Y[i]);
	}
	
	return PutDisks(Z);
}

vector <int> SortDisks(int n)
{
	vector <int> ans(n, 0), chk(n, 0);
	vector <int> X, Y;
	int i, j, t;
	int s, e, m, v1, v2;
	
	for(i=0; i<n; i++){
		X.clear(); Y.clear();
		
		for(j=0; j<n; j++){
			if(chk[j]) Y.push_back(j);
		}
		
		for(j=0; j<n; j++){
			if(!chk[j]) X.push_back(j);
		}
		
		sort(Y.begin(), Y.end(), [&](int &a, int &b){
			return ans[a] < ans[b];
		});
		
		v1 = ask(X, Y);
		
		for(s=1, e=n-i-1; s<=e; ){
			m = s + e >> 1;
			rotate(X.begin(), X.begin() + m, X.end());
			
			v2 = ask(X, Y);
			if(v1 + m == v2) s = m + 1;
			else e = m - 1;
			
			rotate(X.begin(), X.begin() + n - i - m, X.end());
		}
		
		chk[X[e]] = 1; ans[X[e]] = v1 - (n - e) + 1;
	}
	
	return ans;
}

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

grid.cpp: In function 'int ask(std::vector<int>&, std::vector<int>&)':
grid.cpp:13:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(i=0; i<Y.size(); i++){
           ~^~~~~~~~~
grid.cpp: In function 'std::vector<int> SortDisks(int)':
grid.cpp:45:10: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
    m = s + e >> 1;
        ~~^~~
grid.cpp:24:12: warning: unused variable 't' [-Wunused-variable]
  int i, j, t;
            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...