Submission
Status:
---P-P--PP
Subtask/Task Score:
40/100
Score: 40
User: rice_ot
Problemset: Internal Order
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-15 16:34:38
#include <bits/stdc++.h>
using namespace std;
int main(){
int jaowpor; cin>>jaowpor;
int n = 4;
map<string, int> pillar;
for(int i = 1; i<=4; i++){
string x; cin>>x;
pillar[x] = i;
}
deque<int> order;
for(auto& i : pillar){
order.push_back(i.second);
}
for(int i = 1; i<jaowpor; i++){
order.push_back(order.front());
order.pop_front();
}
//for(auto i : order) cout<<i<<" ";
//cout<<"\n";
int loa, lob, loc, lod;
bool w = false, p = false, e = false;
//w check
if(jaowpor == 1 || order[0] == 2) w = true;
for(int i = 0; i<n; i++){
if(order[i] == 4) loa = i;
else if(order[i] == 3) lob = i;
}
if(loa < lob) w = false;
//p check
for(int i = 0; i<n; i++){
if(order[i] == 2) loa = i;
else if(order[i] == 3) lob = i;
else if(order[i] == 1) loc = i;
else if(order[i] == 4) lod = i;
}
if(loa<lob && lob<loc && lod != 2) p = true;
//e check
for(int i = 0; i<n; i++){
if(order[i] == 4) loa = i;
else if(order[i] == 1) lob = i;
else if(order[i] == 2) loc = i;
}
if(loc != 3) e = true;
if( (w == false && p == true) || (w == true && p == false) && loa<lob){
e = true;
}
//cout<<w<<" "<<p<<" "<<e<<"\n";
for(int i = 0; i<n; i++){
if(order[i] == 4) loa = i;
else if(order[i] == 2) lob = i;
else if(order[i] == 1) loc = i;
else if(order[i] == 3) lod = i;
}
//pillar awaken!
if(e == false){
cout<<"No Croissant :(";
}
else if(loa<lob || loc < lod){
cout<<"CROISSANT with ordering: ";
for(auto& i : order)cout<<i<<" ";
}
}