Pagini recente » Cod sursa (job #2839541) | Cod sursa (job #423311) | Cod sursa (job #1893986) | Cod sursa (job #3127330) | Cod sursa (job #249772)
Cod sursa(job #249772)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct plus {long long nr,val;} aux,v[3];
long long x,smax,S,a,b,i,sol,unu,minus,zero;
int cmp(plus a,plus b){
return a.val<b.val;
}
int main(){
FILE *f=fopen("plus.in","r");
fscanf(f,"%lld",&S);
for(i=1;i<=3;i++)
fscanf(f,"%lld %lld",&v[i].nr,&v[i].val);
fclose(f);
sort(v+1,v+4,cmp);
if( v[1].val == -1 && v[2].val == 0 && v[3].val == 1 ){
if(v[3].nr >= S){
sol = 1;
sol+= min( (S-v[3].nr), v[1].nr);
sol*= (v[2].nr + 1);
}
}
if(v[1].val == 1 && v[2].val == 1 && v[3].val == 1){
}
if(v[1].val == -1 && v[2].val == 1 && v[3].val == 1){
if(v[2].nr + v[3].nr >= S){
if(v[3].nr > v[2].nr){
aux=v[3];
v[3]=v[2];
v[2]=aux;
}
smax = v[2].nr + v[3].nr;
x = min(v[2].nr, v[3].nr) + 1;
for(i=S; i<=smax && v[1].nr >= i-S; i++){
sol+= min(i+1, x);
if(i > v[2].nr)
sol-=i - v[2].nr;
}
}
}
if(v[1].val == -1 && v[2].val == -1 && v[3].val == 1){
}
FILE *g=fopen("plus.out","w");
fprintf(g,"%lld",sol);
fclose(g);
return 0;
}