이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
/*#define a fskaddwq
#define b fjsaijdsiajd
#define c jfaisjad
#define d jdisajdisajd
#define e djsiajiwqhew
#define i jisjadisja
#define j dsjoajdisa
#define ii djsiajwiqje
#define jj djaskjdas
#define zx jsajdisajd
#define xc djsaaijdsiao
#define k jdksajdkas
#define P djsoajdas
#define PI djsoajdosa
#define qi jsiajdisa
#define p osjaodjwo
#define q djsiajdi
#define v jdsodjaod*/
using namespace std;
int a,b,c,d,e,i,j,ii,jj,zx,xc,k,P[100009],PI,qi;
pair <int, int> p[100009],q[100009];
vector <int> v;
vector <pair <int, int> > VA;
vector <int> amoxsna20(int aa, int kk, vector <pair <int, int> > ppp){
a=aa;k=kk;
for(i=0; i<a; i++){
p[i]=ppp[i];
}
v.resize(k);
v[0]=a+2;
for(i=0; i<(1<<a); i++){
if(__builtin_popcount(i)!=k) continue;
PI=0;qi=0;
for(j=0; j<a; j++){
if((i&(1<<j))==0) continue;
P[PI]=j;PI++;
qi++;q[qi]=p[j];
}
sort(q+1,q+qi+1);
e=0;
for(j=1; j<qi; j++){
if(q[j].second>q[j+1].first){
e=1;
break;
}
}
if(e==1) continue;
e=0;
for(j=0; j<PI; j++){
if(v[j]>P[j]){
e=1;
break;
}
if(v[j]<P[j]){
break;
}
}
if(e==0) continue;
for(j=0; j<PI; j++){
v[j]=P[j];
}
}
if(v[0]==a+2){
for(j=0; j<k; j++){
v[j]=-1;
}
}else{
for(j=0; j<k; j++){
v[j]++;
}
}
return v;
}
int main(){
cin>>a>>k;
for(i=1; i<=a; i++){
cin>>p[i].first>>p[i].second;
}
for(i=1; i<=a; i++){
VA.push_back(p[i]);
}
v=amoxsna20(a,k,VA);
if(v[0]==-1){
cout<<-1;
return 0;
}
for(i=0; i<k; i++){
cout<<v[i]<<endl;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |