Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.33 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3.  
  4. ifstream in("axyz.in");
  5. ofstream out("axyz.out");
  6.  
  7. int v[33110], p, A, n, cifra, pos;
  8. int vec[33110];
  9. int f[10];
  10.  
  11. void Citire() {
  12.     in >> p >> A >> n;
  13.     int x, y;
  14.     in >> v[1];
  15.     x = v[1];
  16.     for(int i = 2; i <= n; ++i){
  17.         in >> v[i];
  18.         y = v[i];
  19.         if(x > y)
  20.             pos = i - 1;
  21.         x = y;
  22.     }
  23. }
  24. void Solve1() {
  25.     int gasit = 0;
  26.     for(int i = n; i > pos; --i)
  27.         if(v[pos] > v[i]){
  28.             int aux = v[pos];
  29.             v[pos] = v[i];
  30.             v[i] = aux;
  31.             break;
  32.         }
  33.    
  34.     for(int i = 1; i <= pos; ++i)
  35.         out << v[i];
  36.     for(int i = n; i > pos; --i)
  37.         out << v[i];
  38. }
  39.  
  40. void Solve2() {
  41.     cifra = A % 10;
  42.     for(int i = n; i >= 1; --i)
  43.         if(v[i] == cifra)
  44.             vec[i] = vec[i + 1] + 1;
  45.         else
  46.             vec[i] = vec[i + 1];
  47.     A /= 10;
  48.     while(A) {
  49.         cifra = A % 10;
  50.         for(int i = n; i >= 1; --i)
  51.             if(v[i] == cifra) {
  52.                 vec[i] = vec[i + 1] + vec[i];
  53.             }
  54.             else vec[i] = vec[i + 1];
  55.         A /= 10;
  56.     }  
  57.     out << vec[1];
  58. }  
  59.  
  60. int main() {
  61.  
  62.     Citire();
  63.  
  64.     if(p == 1)  
  65.         Solve1();
  66.     else
  67.         Solve2();
  68.  
  69.     in.close();
  70.     out.close();
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement