답안 #140214

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
140214 2019-08-02T10:00:49 Z rajarshi_basu 자동 인형 (IOI18_doll) C++14
6 / 100
158 ms 22736 KB
#include <bits/stdc++.h>

#include "doll.h"

#define FOR(i,n) for(int i = 0;i<n;i++)
#define FORE(i,a,b) for(int i= a;i<=b;i++)
#define ll long long int
#define vi vector<int>
#define vv vector
#define pb push_back
#define ii pair<int,int>

using namespace std;

const int MAXN = 4e5;
int n,m;

vi out[MAXN];
int ctr = 1;
int x[MAXN];
int y[MAXN];
bool dummy[MAXN];

void ans1wer(vi a,vi b,vi c){
	for(auto e : a)cout << e << " ";cout << endl;
	FOR(i,b.size()){
		cout << b[i] << " " << c[i] << endl;
	}
}

int solve(vi nums){
	if(nums.size() == 1){
		
		return nums[0];
	}
	vi lft;vi rght;
	FOR(i,nums.size()){
		if(i%2 == 0){
			lft.pb(nums[i]);
		}else{
			rght.pb(nums[i]);
		}
	}
	int xx = solve(lft);
	int yy = solve(rght);
	x[ctr] = xx;
	y[ctr] = yy;
	ctr++;
	return -(ctr-1);
}

void create_circuit(int m,vi a){
	::m = m;
	n = a.size();
	vi carr;
	FOR(i,n){
		if(i == n-1){
			out[a[i]].pb(0);
		}else{
			out[a[i]].pb(a[i+1]);
		}
	}
	//FOR(i,m)reverse(out[i].begin(),out[i].end());
	out[0].pb(a[0]);
	vi outof(m+1);
	FOR(i,m+1){
		//cout << "ITEMS : " << endl;
		//for(auto e : out[i])cout << e << " ";cout << endl;
		if(out[i].size() == 0){
			outof[i] = 0;
		}else{
			int kk = out[i].size();
			int lst = out[i].back();
			out[i].pop_back();
			vi ids;
			while((kk&(kk-1)) != 0){
				out[i].pb(-ctr);
				dummy[ctr] = 1;
				x[ctr] = -ctr;
				ids.pb(ctr);
				//y[ctr] = i;
				kk++;
				ctr++;
			}
			out[i].pb(lst);
			outof[i] = solve(out[i]);
			for(auto e: ids)y[e] = outof[i];
		}
	}
	vi xx;
	vi yy;
	FORE(i,1,ctr-1){
		xx.pb(x[i]);
		yy.pb(y[i]);
	}
	answer(outof,xx,yy);
}


int m1ain(){
	vi all;
	all.pb(1);
	all.pb(2);
	all.pb(1);
	all.pb(3);
	all.pb(1);
	all.pb(4);
	//all.pb(1);
	
	create_circuit(4,all);
	return 0;
}

Compilation message

doll.cpp: In function 'void ans1wer(std::vector<int>, std::vector<int>, std::vector<int>)':
doll.cpp:25:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   25 |  for(auto e : a)cout << e << " ";cout << endl;
      |  ^~~
doll.cpp:25:34: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   25 |  for(auto e : a)cout << e << " ";cout << endl;
      |                                  ^~~~
doll.cpp:5:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define FOR(i,n) for(int i = 0;i<n;i++)
......
   26 |  FOR(i,b.size()){
      |      ~~~~~~~~~~                  
doll.cpp:26:2: note: in expansion of macro 'FOR'
   26 |  FOR(i,b.size()){
      |  ^~~
doll.cpp: In function 'int solve(std::vector<int>)':
doll.cpp:5:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define FOR(i,n) for(int i = 0;i<n;i++)
......
   37 |  FOR(i,nums.size()){
      |      ~~~~~~~~~~~~~               
doll.cpp:37:2: note: in expansion of macro 'FOR'
   37 |  FOR(i,nums.size()){
      |  ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 9676 KB Output is correct
2 Correct 46 ms 13416 KB Output is correct
3 Correct 38 ms 13004 KB Output is correct
4 Correct 8 ms 9696 KB Output is correct
5 Correct 17 ms 10828 KB Output is correct
6 Correct 52 ms 14700 KB Output is correct
7 Correct 7 ms 9672 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 9676 KB Output is correct
2 Correct 46 ms 13416 KB Output is correct
3 Correct 38 ms 13004 KB Output is correct
4 Correct 8 ms 9696 KB Output is correct
5 Correct 17 ms 10828 KB Output is correct
6 Correct 52 ms 14700 KB Output is correct
7 Correct 7 ms 9672 KB Output is correct
8 Correct 74 ms 15548 KB Output is correct
9 Correct 74 ms 15952 KB Output is correct
10 Correct 106 ms 18920 KB Output is correct
11 Correct 9 ms 9676 KB Output is correct
12 Correct 7 ms 9676 KB Output is correct
13 Correct 8 ms 9676 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 9676 KB Output is correct
2 Correct 46 ms 13416 KB Output is correct
3 Correct 38 ms 13004 KB Output is correct
4 Correct 8 ms 9696 KB Output is correct
5 Correct 17 ms 10828 KB Output is correct
6 Correct 52 ms 14700 KB Output is correct
7 Correct 7 ms 9672 KB Output is correct
8 Correct 74 ms 15548 KB Output is correct
9 Correct 74 ms 15952 KB Output is correct
10 Correct 106 ms 18920 KB Output is correct
11 Correct 9 ms 9676 KB Output is correct
12 Correct 7 ms 9676 KB Output is correct
13 Correct 8 ms 9676 KB Output is correct
14 Incorrect 158 ms 22736 KB Output isn't correct
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 7 ms 9676 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 7 ms 9676 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 7 ms 9676 KB Output isn't correct
2 Halted 0 ms 0 KB -