답안 #484205

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
484205 2021-11-02T12:25:17 Z starplat Slagalica (COCI19_slagalica2) C++14
15 / 70
31 ms 2156 KB
#include <bits/stdc++.h>
#define xoxo {cout<<-1<<endl;return 0;}
using namespace std;
int n,id,x;
char l,r;
deque<int> q;
vector<int> a[10];
int max(int x,int y)
{
	return (a[x].size()>a[y].size()?a[x].size():a[y].size());
}
int main()
{
	cin.tie(0)->sync_with_stdio(0);
	cin>>n;
	for (int i=0;i<n;i++){
		cin>>id>>x;
		a[id].push_back(x);
	}
	for (int i=1;i<=8;i++) sort(a[i].begin(),a[i].end());
	for (int i=1;i<=8;i++) reverse(a[i].begin(),a[i].end());
	if (max(5,6)>1||max(5,6)==0||max(7,8)>1||max(7,8)==0) xoxo
	if (a[5].size()^a[6].size()==0||a[7].size()^a[8].size()==0) xoxo
	l=(a[5].size()?'>':'<');
	r=(a[7].size()?'<':'>');
	n-=2;
	q.push_back(a[5].size()?a[5].back():a[6].back());
	while (n){
		int x=q.size();
		if (l=='>'){
			while (a[3].size()&&a[4].size()&&a[3].back()<=a[4].back()||a[4].size()==1&&a[3].size()){
				q.push_back(a[3].back()),a[3].pop_back();
				n--,l='>';
			}
			if (a[4].size()){
				q.push_back(a[4].back()),a[4].pop_back(),n--,l='<';
			} 
		}
		else {
			while (a[1].size()&&a[2].size()&&a[2].back()<=a[1].back()||a[1].size()==1&&a[2].size()){
				q.push_back(a[2].back()),a[2].pop_back();
				n--,l='<';
			}
			if (a[1].size()) {
				q.push_back(a[1].back()),a[1].pop_back(),n--,l='>';
			}
		}
		if (x==q.size()) break;
	}
	if (n||l!=r) xoxo
	while (!q.empty()) cout<<q.front()<<" ",q.pop_front();
	cout<<(r=='<'?a[7].back():a[8].back())<<endl;
}

Compilation message

slagalica.cpp: In function 'int main()':
slagalica.cpp:23:29: warning: suggest parentheses around comparison in operand of '^' [-Wparentheses]
   23 |  if (a[5].size()^a[6].size()==0||a[7].size()^a[8].size()==0) xoxo
      |                  ~~~~~~~~~~~^~~
slagalica.cpp:23:57: warning: suggest parentheses around comparison in operand of '^' [-Wparentheses]
   23 |  if (a[5].size()^a[6].size()==0||a[7].size()^a[8].size()==0) xoxo
      |                                              ~~~~~~~~~~~^~~
slagalica.cpp:31:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   31 |    while (a[3].size()&&a[4].size()&&a[3].back()<=a[4].back()||a[4].size()==1&&a[3].size()){
      |           ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
slagalica.cpp:40:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   40 |    while (a[1].size()&&a[2].size()&&a[2].back()<=a[1].back()||a[1].size()==1&&a[2].size()){
      |           ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
slagalica.cpp:48:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |   if (x==q.size()) break;
      |       ~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 26 ms 1756 KB Output is correct
2 Correct 20 ms 940 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 26 ms 1800 KB Output is correct
2 Correct 18 ms 940 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 796 KB Output is correct
2 Incorrect 19 ms 748 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Correct 21 ms 760 KB Output is correct
2 Incorrect 20 ms 944 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 17 ms 792 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 18 ms 848 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 18 ms 972 KB Output is correct
2 Incorrect 26 ms 1880 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 31 ms 2156 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 27 ms 1800 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 29 ms 2064 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 27 ms 1768 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 28 ms 1832 KB Output isn't correct
2 Halted 0 ms 0 KB -