Guest User

Untitled

a guest
Oct 5th, 2014
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.67 KB | None | 0 0
  1. /*
  2.  * File:   main.cpp
  3.  * Author: khaled
  4.  *
  5.  * Created on September 19, 2014, 3:32 PM
  6.  */
  7.  
  8. #include<iostream>
  9. #include<fstream>
  10. #include<vector>
  11. #include<string>
  12. #include<queue>
  13. #include<stack>
  14. #include<map>
  15. #include<set>
  16. #include<algorithm>
  17. #include<iomanip>
  18. #include<bitset>
  19. #include<stdio.h>
  20. #include<stdlib.h>
  21. #include<string.h>
  22. #include<cmath>
  23. #include<functional>
  24.  
  25. #define ll long long
  26. #define ull unsigned long long
  27. #define rep(i,n) for(int i=0;i<(int)n;i++)
  28. #define rep2(i,a,b) for(int i=(int)a;i<(int)b;i++)
  29. #define vll vector<long long>
  30. #define vi vector<int>
  31. #define pb(i) push_back( i )
  32. #define ii pair<int,int>
  33. #define vii vector <pair<int,int> >
  34. #define mp(i,j) (make_pair ( i , j ))
  35. #define dwiln(x) printf("%d\n",(x))
  36. #define dri(x) scanf("%d",&(x))
  37. #define drii(x,y) scanf("%d%d",&(x),&(y))
  38. #define drl(x) scanf("%I64d",&(x))
  39. #define drll(x,y) scanf("%I64d%I64d",&(x),&(y))
  40. #define setbit(x,i) (x|(1<<i))
  41. #define getbit(x,i) ((x>>i)&1)
  42. using namespace std;
  43. int Tc;
  44. int r, q;
  45. string n;
  46. vector<string> v;
  47. vector<pair<int, string> > v2;
  48.  
  49. bool lesss(const string& a, const string& b) {
  50.     if (a.size() == b.size()) {
  51.         return a<b;
  52.  
  53.     }
  54.     return a.size() < b.size() + 1;
  55. }
  56.  
  57. bool lesss(const string& a, const string& b, int i) {
  58.     if (a.size() == b.size() + 1) {
  59.         if (a.find(b) == 0)
  60.             return a[a.size() - 1] < i + '0';
  61.         return a<b;
  62.  
  63.     }
  64.     return a.size() < b.size() + 1;
  65. }
  66.  
  67. int main() {
  68.     freopen("identify.in", "r", stdin);
  69.     freopen("identify.out", "w", stdout);
  70.     ios_base::sync_with_stdio(false);
  71.     cin>>Tc;
  72.     while (Tc--) {
  73.         cin >> n >> r>>q;
  74.         v.clear();
  75.         v.resize(q, "");
  76.         for (int i = 0; i < n.size(); i++) {
  77.             int t = n[i] - '0';
  78.             v2.clear();
  79.             for (int j = 0; j < q; j++) {
  80.                 string &tmp = v[j];
  81.                 if (v[j] == "" && j != 0)
  82.                     continue;
  83.                 int newj = (j * 10 + t) % q;
  84.                 if (tmp != "" || t != 0) {
  85.                     if (lesss(v[newj], tmp,t))
  86.                         //   if(tmp>v[newj])
  87.                         v2.push_back(make_pair(newj, tmp+char('0'+t)));
  88.                 } else {
  89.                    
  90.                 }
  91.             }
  92.             for (int i = 0; i < v2.size(); i++) {
  93.                 //if( v[v2[i].first]<v2[i].second)
  94.                 if (lesss(v[v2[i].first], v2[i].second))
  95.                     v[v2[i].first] = v2[i].second;
  96.  
  97.             }
  98.  
  99.  
  100.         }
  101.         if (v[r] == "")
  102.             cout << "Not found\n";
  103.         else
  104.             cout << v[r] << "\n";
  105.  
  106.     }
  107.    // cout<<"ddd";
  108.     return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment