Pagini recente »
Istoria paginii runda/2023-10-01-optional-clasa8-tema3/clasament
|
Cod sursă (job #334507)
|
Atașamentele paginii 2024-01-14-clasa-8-tema-13
|
oji-2023-antrenament-ffa-v2
|
Cod sursă (job #317612)
Cod sursă (job
#317612)
#include<stdio.h>
using namespace std;
#define MAXN 10001
int stiva[MAXN];
char sw[MAXN];
int vf;
inline int ok(int x, int k1, int k2){
int i;
i=vf;
while(i>0 && k2>0 && x>stiva[i]){
k1+=sw[i];
k2--;
i--;
}
if(k1>0)
return 1;
return 0;
}
//k1 rotiri
//k2 eliminari
int main(){
FILE*fin=fopen("domino.in", "r");
FILE*fout=fopen("domino.out", "w");
int n, j, k1, k2, i, a, b, c, nr, fl, x;
fscanf(fin, "%d%d%d", &n, &k1, &k2);
vf=0;
for(i=1; i<=n; i++){
fscanf(fin, "%d%d", &a, &b);
x=a*10+b; fl=0;
if(b>a && (ok(b*10+a, k1, k2)==1)){
x=b*10+a;
k1--;
fl=1;
}
// printf("%d\n", x);
while(vf>0 && k2>0 && x>stiva[vf]){
k1+=sw[vf];
k2--;
vf--;
}
vf++; stiva[vf]=x; sw[vf]=fl;
// if(fl==0){
// j=vf-1;
// while(j>0 && x==stiva[j] && sw[j]==1)
// j--;
// j++;
// if(stiva[j]==x && sw[j]==1){
// sw[j]=0;
// sw[vf]=1;
// }
// }
}
for(i=1; i<=vf-k2; i++)
fprintf(fout, "%d", stiva[i]);
return 0;
}