Advertisement
Anon2005

cmmp

Feb 23rd, 2019
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream in("cmmp.in");
  4. ofstream out("cmmp.out");
  5. int cifre(long long n)
  6. {
  7.     int cnt=0;
  8.     while(n)
  9.     {
  10.         n/=10;
  11.         cnt++;
  12.     }
  13.     return cnt;
  14. }
  15. long long rasp[100001];
  16. int v[11];
  17. void fa(long long num)
  18. {
  19.     int x=cifre(num),i,nr,j,num1=num;
  20.     for(i=x; i>=1; i--)
  21.     {
  22.         v[i]=num1%10;
  23.         num1/=10;
  24.     }
  25.     for(i=1; i<=x; i++)
  26.     {
  27.         nr=0;
  28.         for(j=i; j<=x; j++)
  29.         {
  30.             nr=nr*10+v[j];
  31.             if(nr>100000)
  32.                 break;
  33.             if(rasp[nr]==-1)
  34.                 rasp[nr]=num;
  35.         }
  36.     }
  37. }
  38. int main()
  39. {
  40.     int n,x,i;
  41.     in>>n;
  42.     for(i=1; i<=100000; i++)
  43.         rasp[i]=-1;
  44.     for(i=1; i<=83667; i++)
  45.         fa((long long)(i*i));
  46.     for(i=1; i<=n; i++)
  47.     {
  48.         in>>x;
  49.         out<<rasp[x]<<'\n';
  50.     }
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement