June 3——cf 546A,535B,546B

今天刷了三道水题。。。。。。呵呵June 3——cf 546A,535B,546B - 蜗牛 - 为梦想而生的博客June 3——cf 546A,535B,546B - 蜗牛 - 为梦想而生的博客

546A


#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    __int64 k,n,w,s,t;
    while(cin>>k>>n>>w)
    {
        s=n-((k+k*w)*w)/2;
        if(s>=0)
            cout<<"0"<<endl;
        else
            printf("%I64d\n",-s);
    }
    return 0;
}

546B

#include<iostream>
using namespace  std;
#define N 3000+2
int partition(int *a,int p,int r)
{
    int i=p,j=r;
    int x=a[p];
    while(i<j)
    {
        while(a[j]>=x&&i<j)
            j--;
        a[i]=a[j];
        while(a[i]<=x&&i<j)
            i++;
        a[j]=a[i];
    }
    a[i]=x;
    return i;
}

void Qsort(int *a,int p,int r)
{
    if(p<r)
    {
        int q=partition(a,p,r);
        Qsort(a,p,q-1);
        Qsort(a,q+1,r);
    }
}

int main()
{
    int a[N],b[N],n,i,j;
    while(cin>>n)
    {
        for(i=0;i<n;i++)
        {
            cin>>b[i];
            a[i]=b[i];
        }
        Qsort(a,0,n-1);
//        for(i=0;i<n;i++)cout<<b[i]<<" ";cout<<endl;
        int num=0;
        for(i=0;i<n;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(a[i]==a[j])
                {
                     a[j]++;
                     num++;
                }
            }
        }
        cout<<num<<endl;
    }
    return 0;
}

 


535B
 

TLE代码June 3——cf 546A,535B,546B - 蜗牛 - 为梦想而生的博客June 3——cf 546A,535B,546B - 蜗牛 - 为梦想而生的博客

#include<iostream>
using namespace std;
int main()
{
    int n,i;
    while(cin>>n)
    {
        int num;
        int t,s;
        if(n==4)
            cout<<"1\n";
        else if(n==7)
            cout<<"2\n";
        else{num=2;
        for(i=44;i<=n;i++)
        {
          s=i;
          if(i%10!=4&&i%10!=7)
            continue;
          while(s)
          {
             t=s%10;
             if(t!=4&&t!=7)
                break;
             s/=10;
          }
          if(s==0)
             num++;
        }
        cout<<num<<endl;
        }
    }
    return 0;
}

AC代码

 

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int i;
    string s;

    while(cin>>s)
    {int a=0,b=1;
        for(i=s.size()-1;i>=0;i--)
        {
            if(s[i]=='4')
                a+=b;
            else
                a+=2*b;
            b*=2;
        }
        cout<<a<<endl;
    }
    return 0;
}


 

评论
热度 ( 1 )

© 现实给了梦想多少时间 | Powered by LOFTER