Advertisement
Guest User

Untitled

a guest
Apr 6th, 2021
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include <vector>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. void riprogramma(int N, int k, vector<int>& c){
  6.     if(k == 2){
  7.         bool controllo = false;
  8.         while(controllo == false){
  9.             if(c[N-1] == c[N-2]){
  10.                 if(c[N-2] == 1){
  11.                     c[N-1] = 2;
  12.                 }else{
  13.                     c[N-2] = 1;
  14.                 }
  15.             }
  16.             for(int i=N-2; i>1; i--){
  17.                 if(c[i] == c[i-1]){
  18.                     if(c[i+1] == c[i-1]){
  19.                         if(c[i+1] == 2){
  20.                             c[i] = 1;
  21.                         }else{
  22.                             c[i] = 2;
  23.                         }
  24.                     }else{
  25.                         if(c[i-1] != c[i-2]){
  26.                             int f=c[i-1];
  27.                             c[i-1] = c[i-2];
  28.                             c[i-2] = f;
  29.                         }
  30.                     }
  31.                 }
  32.             }
  33.             if(c[0] == c[1]){
  34.                 if(c[1] == 1){
  35.                     c[0] = 2;
  36.                 }else{
  37.                     c[0] = 1;
  38.                 }
  39.             }
  40.             controllo = true;
  41.             for(int i=0; i<N and controllo == true; i++){
  42.                 if(c[i] == c[i+1]){
  43.                     controllo = false;
  44.                 }
  45.             }
  46.         }
  47.     }else{
  48.         bool controllo = false;
  49.         for (int i = 1; i < N-1; i++){  
  50.             if(c[i] == c[i-1]){
  51.                 for(int j=1; j<=k and controllo == false; j++){
  52.                     if(j != c[i-1] and c[i+1] != j){
  53.                         c[i] = j;  
  54.                         controllo = true;
  55.                     }  
  56.                 }
  57.             }
  58.             controllo = false;
  59.         }
  60.         if(c[N-1] == c[N-2]){
  61.             for(int j=1; j<=k and controllo == false; j++){
  62.                 if(j != c[N-2]){
  63.                     c[N-1] = j;
  64.                     controllo = true;
  65.                 }  
  66.             }
  67.         }
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement