Facebook
From ja, 7 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 317
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. // N - liczba wagoników
  9. // M - minimalna liczba kolejek
  10. // K - maks ilość błedów w kolejce
  11. // pierwszy warunek: (N/M)=x r[] - zasięg maksymalny
  12. // drugi warunek: x*M-(x-1) - minimalna liczba plusów na ilość kolejek o zasięgu x
  13.  
  14. int main()
  15. {
  16.     srand(time(NULL));
  17.     int N;
  18.     int M;
  19.     int K;
  20.     int x;
  21.     cin>>N;
  22.     cin>>M;
  23.     cin>>K;
  24.     x=(N/M);
  25.     string prod[N];
  26.     int licznik=0;
  27.     int tab[N-1];
  28.     for(int i=0; i<N; i++)
  29.     {
  30.         int los=rand()%100;
  31.         //cout<<los%2<<endl;
  32.         if(los%2==0) prod[i]="+";
  33.         else prod[i]="-";
  34.         cout<<prod[i];
  35.     }
  36.     cout<<x<<endl;
  37.     for(int i=0; i<N; i++)
  38.     {
  39.         if(prod[i]=="+") licznik++;
  40.     }
  41.     do
  42.     {
  43.         if(x*M-(x-1)<licznik) x--;
  44.         if(x-K==0) break;
  45.         cout<<x<<endl;
  46.         for(int i=0; i<(N-1); i++)
  47.         {
  48.             int licznik=0;
  49.             for(x=x+i-1; x>=i; x--)
  50.             {
  51.                 if(prod[x]=="+") licznik++;
  52.             }
  53.             cout<<licznik<<":"<<K<<" ";
  54.             if(licznik==x-K||licznik>x-K) tab[i]=1;
  55.             else tab[i]=0;
  56.         }
  57.         cout<<endl;
  58.         int maks=0;
  59.         for(int i=0; i<(N-1); i++)
  60.         {
  61.             cout<<tab[i]<<" ";
  62.         }
  63.         cout<<endl;
  64.         for(int i=1; i<(N-1); i=i+x-1)
  65.         {
  66.             if(tab[i-1]==1&&tab[i]==1) tab[i-1]=0;
  67.         }
  68.         for(int i=0; i<(N-1); i++)
  69.         {
  70.             cout<<tab[i]<<" ";
  71.         }
  72.         for(int i=0; i<(N-1); i++)
  73.         {
  74.             if(tab[i]==1) maks++;
  75.         }
  76.         cout<<maks;
  77.         if(maks==M||maks>M)
  78.         {
  79.             cout<<maks;
  80.             break;
  81.         }
  82.         else
  83.         {
  84.             cout<<0;
  85.             break;
  86.         }
  87.     } while (x>1);
  88.     return 0;
  89. }
  90.  

Replies to cos rss

Title Name Language When
Re: cos ja cpp 7 Years ago.
captcha