#include<stdio.h>
long long s1(long long sum ,long long k)
{
long long i,sum1=0;
if(sum<k)
sum1=sum;
else if(sum==k)
sum1=0;
else if(sum>k)
for(i=1;sum>k;i++)
{sum=sum%(k*i);}
sum1=sum;
return sum1;
}//求出真正需要用到的sum1
int main()
{
long long r,y,g,i,k,a,b;
long long n,m,sum=0;
scanf("%l64d %l64d %l64d",&r,&y,&g);
k=r+y+g;
scanf("%l64d",&n);
for(i=1;i<=n;i++)
{scanf("%l64d %l64d",&a,&b);
m=s1(sum,k);
if(a==0)
{sum=sum+b;
continue;}
if(a==1)
{ if(b>m)
sum=sum+b-m;
else if(m<=b+g)
sum=sum;
else sum=sum+k-m+b;
continue;
}
if(a==2)
{
if(m<=b+r)
sum=sum+b-m+r;
else if(m<=b+r+g)
sum=sum;
else
sum=sum+k-m+b+r;
continue;
}
if(a==3)
{
if(b>m)
sum=sum;
else if(m<=b+y+r)
sum=sum+k-m-g+b;
else sum=sum;
continue;
}
}
printf("%l64d",sum);
}
uj5u.com熱心網友回復:
#include<stdio.h>
long long s1(long long sum ,long long k)
{
long long i,sum1=0;
if(sum<k)
sum1=sum;
else if(sum==k)
sum1=0;
else if(sum>k)
for(i=1;sum>k;i++)
{sum=sum%(k*i);}
sum1=sum;
return sum1;
}//求出真正需要用到的sum1
int main(void)
{
long long r,y,g,i,k,a,b;
long long n,m,sum=0;
//scanf("%l64d %l64d %l64d",&r,&y,&g);
scanf("%lld %lld %lld", &r, &y, &g);
k=r+y+g;
//scanf("%l64d",&n);
scanf("%lld", &n);
for(i=1;i<=n;i++)
{
//scanf("%l64d %l64d",&a,&b);
scanf("%lld %lld", &a, &b);
m=s1(sum,k);
if(a==0) {
sum=sum+b;
continue;
}
if(a==1)
{ if(b>m)
sum=sum+b-m;
else if(m<=b+g)
sum=sum;
else sum=sum+k-m+b;
continue;
}
if(a==2)
{
if(m<=b+r)
sum=sum+b-m+r;
else if(m<=b+r+g)
sum=sum;
else
sum=sum+k-m+b+r;
continue;
}
if(a==3)
{
if(b>m)
sum=sum;
else if(m<=b+y+r)
sum=sum+k-m-g+b;
else
sum=sum;
continue;
}
}
//printf("%l64d",sum);
printf("%lld", sum);
}
供參考~
對于sum = sum;建議去掉
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/232775.html
標籤:新手樂園
上一篇:這個swap()函式,看不懂啊
