Submission #484206

#TimeUsernameProblemLanguageResultExecution timeMemory
484206starplatSlagalica (COCI19_slagalica2)C++14
70 / 70
41 ms2220 KiB
#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[1].size()==0&&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 if (a[3].size()) { q.push_back(a[3].back()),a[3].pop_back(),n--,l='>'; } } else { while (a[1].size()&&a[2].size()&&a[2].back()<=a[1].back()||a[1].size()==1&&a[4].size()==0&&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='>'; } else if (a[2].size()){ q.push_back(a[2].back()),a[2].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; } /* 7 5 1 3 10 3 9 4 8 1 7 3 6 8 5 1 6 8 7 9 10 5 [> >> >< <> >> >> >] */

Compilation message (stderr)

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[1].size()==0&&a[3].size()){
      |           ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
slagalica.cpp:43:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   43 |    while (a[1].size()&&a[2].size()&&a[2].back()<=a[1].back()||a[1].size()==1&&a[4].size()==0&&a[2].size()){
      |           ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
slagalica.cpp:54:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |   if (x==q.size()) break;
      |       ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...