• Турнир за Купата на Декана, 2010, F. Гориво

    #include <iostream>
    #include <cstdio>
    #include <vector>
    using namespace std;
    int n,k,l,pos,a[10000],t;
    int mid,k1,m1;
    vector<int>b;
    
    bool can(int &mid)
    {
         k1=0;
         pos=mid;
         while(1)
         {
                int l1=-1;
                int r1=n;
                while (r1-l1>1)
                {
                      m1=l1+(r1-l1)/2;
                      if (a[m1]<=pos) l1=m1;
                      else r1=m1;
                }
                k1++;
                if (l1==-1) l1++;
                pos=a[l1]+mid;
                if (pos>=l) break;
                if (k1>k) break;
         }
         if (k1>k) return 0;
         if (pos>=l)return 1;
    
    }
    
    int main  ()
    {
        int left,right;
        scanf("%d",&t);
        for (int o=0; o<t; o++)
        {
            scanf("%d %d %d",&n,&k,&l);
            for (int i=0; i<n; i++) scanf("%d",&a[i]);
            left=0;
            right=l;
            while (right-left>1)
            {
                  mid=left+(right-left)/2;
                  if (can(mid)) right=mid;
                  else left=mid;
            }
            b.push_back(right);
        }
        for (int i=0; i<t; i++) printf("%d\n",b[i]);
        return 0;
    }
    

    Турнир за Купата на Декана, 2010, A. Блага дума

    #include <cstdio>
    #include <vector>
    using namespace std;
    vector<string>a;
    string p,mp;
    char q;
    int main ()
    {
        int n;
        scanf("%d",&n);
        for (int i=0; i<n; ++i)
        {
            cin>>p;
            a.push_back(p);
        }
        
        for (int i=0; i<n; i++)
        {
            mp=a[i];
            int k=a[i].size();
            for (int j=0; j<k; j++)
            {
                q=a[i][0];
                a[i].erase(0,1);
                a[i]+=q;
                if (a[i]<mp) mp=a[i];
            }
            cout<<mp<<endl;
        }
            
       // system ("pause");
        return 0;
    }
    
  • Вашият коментар

    Вашият имейл адрес няма да бъде публикуван.