Friday 28 July 2017

Lightoj 1109 - False Ordering

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector<int> v[1006];
  4. int a[1000];
  5. void preprocess(){
  6.     for(int i = 1; i <1006; i++){
  7.         for(int j = i; j <1006; j+= i){
  8.             v[j].push_back(i);
  9.         }
  10.     }
  11.     /*
  12.     for(int i = 1; i <=1000; i++){
  13.         for(int j = 0; j <v[i].size(); j++){
  14.             cout<<v[i][j]<<" ";
  15.         }
  16.         cout<<endl;
  17.     }
  18.     */
  19.  
  20. }
  21.  
  22. bool comp(int a, int b){
  23.     return ((v[a].size()<v[b].size()) ||((v[a].size()==v[b].size())&&(a>b)));
  24. }
  25. int main(){
  26.     preprocess();
  27.     //cout<<"comes";
  28.     for(int i = 1; i <=1000; i++){
  29.         a[i-1] = i;
  30.     }
  31.     sort(a, a+1000, comp);
  32.     //for(int i = 0; i <1000; i++) cout<<a[i]<<" ";
  33.     int ts;
  34.     cin>>ts;
  35.     for(int i = 1; i <=ts; i++){
  36.     int n;
  37.     scanf("%d"&n);
  38.     printf("Case %d: %d\n", i, a[n-1]);
  39.     }
  40.     return 0;
  41. }

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...