fork download
  1. //teja349
  2. #include <bits/stdc++.h>
  3. #include <vector>
  4. #include <set>
  5. #include <map>
  6. #include <string>
  7. #include <cstdio>
  8. #include <cstdlib>
  9. #include <climits>
  10. #include <utility>
  11. #include <algorithm>
  12. #include <cmath>
  13. #include <queue>
  14. #include <stack>
  15. #include <iomanip>
  16. #include <ext/pb_ds/assoc_container.hpp>
  17. #include <ext/pb_ds/tree_policy.hpp>
  18. //setbase - cout << setbase (16); cout << 100 << endl; Prints 64
  19. //setfill - cout << setfill ('x') << setw (5); cout << 77 << endl; prints xxx77
  20. //setprecision - cout << setprecision (14) << f << endl; Prints x.xxxx
  21. //cout.precision(x) cout<<fixed<<val; // prints x digits after decimal in val
  22.  
  23. using namespace std;
  24. using namespace __gnu_pbds;
  25.  
  26. #define f(i,a,b) for(i=a;i<b;i++)
  27. #define rep(i,n) f(i,0,n)
  28. #define fd(i,a,b) for(i=a;i>=b;i--)
  29. #define pb push_back
  30. #define mp make_pair
  31. #define vi vector< int >
  32. #define vl vector< ll >
  33. #define ss second
  34. #define ff first
  35. #define ll long long
  36. #define pii pair< int,int >
  37. #define pll pair< ll,ll >
  38. #define sz(a) a.size()
  39. #define inf (1000*1000*1000+5)
  40. #define all(a) a.begin(),a.end()
  41. #define tri pair<int,pii>
  42. #define vii vector<pii>
  43. #define vll vector<pll>
  44. #define viii vector<tri>
  45. #define mod (1000*1000*1000+7)
  46. #define pqueue priority_queue< int >
  47. #define pdqueue priority_queue< int,vi ,greater< int > >
  48. #define flush fflush(stdout)
  49. #define primeDEN 727999983
  50. mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
  51.  
  52. // find_by_order() // order_of_key
  53. typedef tree<
  54. int,
  55. null_type,
  56. less<int>,
  57. rb_tree_tag,
  58. tree_order_statistics_node_update>
  59. ordered_set;
  60.  
  61. int mini[12],maxi[12];
  62. int main(){
  63. std::ios::sync_with_stdio(false); cin.tie(NULL);
  64. int t;
  65. cin>>t;
  66. while(t--){
  67. string s;
  68. cin>>s;
  69. int i;
  70. rep(i,10){
  71. mini[i]=inf;
  72. maxi[i]=-1;
  73. }
  74. int val,j,ans=200;
  75. rep(i,s.length()){
  76. val=s[i]-'0';
  77. mini[val]=min(mini[val],i);
  78. maxi[val]=max(maxi[val],i);
  79. }
  80. rep(i,10){
  81. if(mini[i]!=inf && i%4==0){
  82. ans=min(ans,i);
  83. }
  84. rep(j,10){
  85. if(mini[i]<maxi[j] &&(i*10+j)%4==0){
  86. ans=min(ans,i*10+j);
  87. }
  88. }
  89. }
  90. if(ans!=200){
  91. cout<<"YES ";
  92. cout<<ans<<endl;
  93. }
  94. else{
  95. cout<<"NO"<<endl;
  96. }
  97. }
  98. return 0;
  99. }
Success #stdin #stdout 0s 15240KB
stdin
3
78945666384
17
10
stdout
YES 4
NO
YES 0