karlangadas

muy lento

Jan 7th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int x,y,z,h;
  5. int arr[60466177];
  6. //x y z
  7. void Leer(){
  8.     string s;
  9.     cin>>s;
  10.     int i=0;
  11.     while (s[i]!='d')
  12.         i++;
  13.     x=0;
  14.     for (int j=0;j<i;j++)
  15.         x=x*10+(s[j]-'0');
  16.     int len=s.size(),ant=i+1,sign=1;
  17.     while ((i<len) && (s[i]!='+')&&(s[i]!='-'))
  18.         i++;
  19.     y=0;
  20.     for (int j=ant;j<i;j++)
  21.         y=y*10+(s[j]-'0');
  22.     z=0;
  23.     if (i==len){
  24.         //cout<<x<<' '<<y<<' '<<z<<endl;
  25.         return;}
  26.     ant=i+1;
  27.     if (s[i]=='-')
  28.         sign=-1;
  29.     for (int j=ant;j<len;j++)
  30.         z=z*10+(s[j]-'0');
  31.         z=z*sign;
  32.     //cout<<x<<' '<<y<<' '<<z<<endl;
  33. }
  34. int Procesar(int l,int ini){
  35.     if (l==1){
  36.         for (int i=ini;i<=(ini+y-1);i++)
  37.             arr[i]++;
  38.        
  39.        
  40.         if (ini>=h)
  41.             return y;
  42.         if ((ini+y-1)<h)
  43.             return 0;
  44.         return (ini+y-h);
  45.     }
  46.     int r=0;
  47.     for (int i=0;i<y;i++)
  48.         r+=Procesar(l-1,ini+i);
  49.     return r;
  50. }
  51.  
  52. int main() {
  53.     int t,s,ans;
  54.     double max;
  55.     cin>>t;
  56.     for (int i=1;i<=t;i++){
  57.         cin>>h>>s;
  58.         max=0;
  59.         for (int j=0;j<s;j++){
  60.             Leer();
  61.             ans=Procesar(x,x+z);
  62.             //printf("%d %.0f\n",ans,pow(y,x));
  63.             if (((double)ans/(double)pow(y,x))>max)
  64.                 max=(double)ans/(double)pow(y,x);
  65.         }
  66.         printf("Case #%d: %.6f\n",i,max);
  67.         for (int j=3;j<13;j++)
  68.             printf("arr[%d]: %d\n",j,arr[j]);
  69.            
  70.     }
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment