Advertisement
Guest User

programavimo uzduotys

a guest
Sep 16th, 2015
873
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 25.17 KB | None | 0 0
  1. //2010 metai, 1 uzduotis "sachmatai"
  2.  
  3. #include <iostream>
  4. #include <fstream>
  5.  
  6. using namespace std;
  7.  
  8. void ivestis(int &pestininku, int &bokstu, int &zirgu, int &rikiu, int &karaliu, int &valdoviu);
  9. void skaiciavimas(int &pestininku, int &bokstu, int &zirgu, int &rikiu, int &karaliu, int &valdoviu, int &komplektu);
  10. void isvedimas(int komplektu);
  11.  
  12. int main()
  13. {
  14.     int pestininku=0, bokstu=0, zirgu=0, rikiu=0, karaliu=0, valdoviu=0, komplektu=0;
  15.     ivestis(pestininku, bokstu, zirgu, rikiu, karaliu, valdoviu);
  16.     skaiciavimas(pestininku, bokstu, zirgu, rikiu, karaliu, valdoviu, komplektu);
  17.     isvedimas(komplektu);
  18. }
  19.  
  20. void ivestis(int &pestininku, int &bokstu, int &zirgu, int &rikiu, int &karaliu, int &valdoviu){
  21.     int p, b, z, r, k, v, mokiniu;
  22.     ifstream in("U1.txt");
  23.     in >> mokiniu;
  24.     for(int i=0; i<mokiniu; i++){
  25.         in >> p >> b >> z >> r >> k >> v;
  26.         pestininku+=p; bokstu+=b; zirgu+=z; rikiu+=r; karaliu+=k; valdoviu+=v;
  27.     }
  28.     in.close();
  29. }
  30.  
  31. void skaiciavimas(int &pestininku, int &bokstu, int &zirgu, int &rikiu, int &karaliu, int &valdoviu, int &komplektu){
  32.     while(pestininku>=8 && bokstu>=2 && zirgu>=2 && rikiu>=2 && karaliu>=1 && valdoviu>=1){
  33.         pestininku-=8; bokstu-=2; zirgu-=2; rikiu-=2; karaliu-=1; valdoviu-=1;
  34.         komplektu++;
  35.     }
  36. }
  37.  
  38. void isvedimas(int komplektu){
  39.     ofstream out("U1rez.txt");
  40.     out << komplektu;
  41.     out.close();
  42. }
  43.  
  44. //2011 metai. Pirstines
  45.  
  46. #include <iostream>
  47. #include <fstream>
  48.  
  49. #define ne lytis[i]!=0 && lytis[u] !=0 && ranka[i]!=0 && ranka[u]!=0 && dydis[u]!=0 && dydis[i]!=0
  50.  
  51. using namespace std;
  52.  
  53. void ivedimas(int &n, int lytis[], int ranka[], int dydis[]);
  54. void kiekPoru(int &n, int lytis[], int ranka[], int dydis[], int &vyrporu, int &motporu, int &vyriskos, int &moteriskos);
  55. void koksLikutis(int &vyrlikutis, int &motlikutis, int vyrporu, int vyriskos, int motporu, int moteriskos);
  56. void spausdinti(int motporu, int vyrporu, int vyrlikutis, int motlikutis);
  57.  
  58.  
  59. int main()
  60. {
  61.     int n, lytis[100], ranka[100], dydis[100], vyrporu=0, motporu=0, vyriskos=0, moteriskos=0, vyrlikutis, motlikutis;
  62.     ivedimas(n, lytis, ranka, dydis);
  63.     kiekPoru(n, lytis, ranka, dydis, vyrporu, motporu, vyriskos, moteriskos);
  64.     koksLikutis(vyrlikutis, motlikutis, vyrporu, vyriskos, motporu, moteriskos);
  65.     spausdinti(motporu, vyrporu, vyrlikutis, motlikutis);
  66. }
  67.  
  68. void ivedimas(int &n, int lytis[], int ranka[], int dydis[]){
  69.     ifstream in("U1.txt");
  70.     in >> n;
  71.     for(int i=0; i<n; i++){
  72.         in >> lytis[i];
  73.         in >> ranka[i];
  74.         in >> dydis[i];
  75.     }
  76.     in.close();
  77. }
  78.  
  79. void kiekPoru(int &n, int lytis[], int ranka[], int dydis[], int &vyrporu, int &motporu, int &vyriskos, int &moteriskos){
  80.     //lyciu apskaiciavimas
  81.     for(int i=0; i<n; i++){
  82.         if(lytis[i]==3){vyriskos++;}else{moteriskos++;}
  83.     }
  84.     //poru apskaiciavimas
  85.     for(int i=0; i<n; i++){
  86.         for(int u=0; u<n; u++){
  87.             if(lytis[i]==lytis[u] && dydis[i]==dydis[u] && ranka[i]!=ranka[u] && ne){
  88.                 if(lytis[i]==3){vyrporu++; }else{motporu++;}
  89.                 lytis[i]=0; dydis[i]=0; ranka[i]=0; lytis[u]=0; dydis[u]=0; ranka[i]=0;
  90.             }
  91.         }
  92.     }
  93. }
  94.  
  95. void koksLikutis(int &vyrlikutis, int &motlikutis, int vyrporu, int vyriskos, int motporu, int moteriskos){
  96.     vyrlikutis=(vyrporu*2-vyriskos)*-1;
  97.     motlikutis=(motporu*2-moteriskos)*-1;
  98. }
  99.  
  100. void spausdinti(int motporu, int vyrporu, int vyrlikutis, int motlikutis){
  101.     ofstream off("U1rez.txt");
  102.     off<<motporu << endl << vyrporu << endl << motlikutis << endl << vyrlikutis;
  103.     off.close();
  104. }
  105.  
  106. //2011 metai, antra uzduotis
  107.  
  108. #include <string>
  109. #include <iostream>
  110. #include <sstream>
  111. #include <fstream>
  112. #include <iomanip>
  113.  
  114. using namespace std;
  115.  
  116. struct pora{
  117.     string vardas;
  118.     int taskai, technika[10], artistiskumas[10];
  119. };
  120.  
  121. //funkciju prototipai
  122. void ivedimas(int &n, int &k, pora A[]);
  123. void skaiciuotibalus(int n, int k, pora A[], char kuri);
  124. void skaiciutiTaskus(int n, int k, pora A[]);
  125. void rikiavimas(int n, pora A[]);
  126. void isvedimas(pora A[], int n);
  127.  
  128. int main()
  129. {
  130.     pora A[99];
  131.     int n, k;
  132.     ivedimas(n, k, A);
  133.     skaiciuotibalus(n, k, A, 't');
  134.     skaiciuotibalus(n, k, A, 'x');
  135.     skaiciutiTaskus(n, k, A);
  136.     rikiavimas(n, A);
  137.     isvedimas(A, n);
  138. }
  139.  
  140. void ivedimas(int &n, int &k, pora A[]){
  141.     string vard;
  142.     ifstream in("U2.txt");
  143.     in >> n >> k;
  144.     for(int i=0; i<n; i++){
  145.         in.ignore(1, '\n');
  146.         getline(in, A[i].vardas);
  147.         for(int u=0; u<k; u++){
  148.             in >> A[i].technika[u];
  149.         }
  150.         for(int u=0; u<k; u++){
  151.             in >> A[i].artistiskumas[u];
  152.         }
  153.     }
  154.     in.close();
  155. }
  156.  
  157. void skaiciuotibalus(int n, int k, pora A[], char kuri){
  158.     if(kuri=='t'){
  159.         //skaiciuoti balus uz technika
  160.         int maziausias=0, didziausias=0;
  161.         for(int i=0; i<n; i++){
  162.             for(int u=0; u<k; u++){
  163.                 if(A[i].technika[u]>=A[i].technika[didziausias]){didziausias=u;}
  164.                 else if(A[i].technika[u]<=A[i].technika[maziausias]){maziausias=u;}
  165.             }
  166.             A[i].technika[didziausias]=0; A[i].technika[maziausias]=0;
  167.             maziausias=0, didziausias=0;
  168.         }
  169.     }else{
  170.         //skaiciutoi balus uz artistiskuma
  171.         int maziausias=0, didziausias=0;
  172.         for(int i=0; i<n; i++){
  173.             for(int u=0; u<k; u++){
  174.                 if(A[i].artistiskumas[u]>=A[i].artistiskumas[didziausias]){didziausias=u;}
  175.                 else if(A[i].artistiskumas[u]<=A[i].artistiskumas[maziausias]){maziausias=u;}
  176.             }
  177.             A[i].artistiskumas[didziausias]=0; A[i].artistiskumas[maziausias]=0;
  178.             maziausias=0, didziausias=0;
  179.         }
  180.     }
  181. }
  182.  
  183. void skaiciutiTaskus(int n, int k, pora A[]){
  184.     for(int i=0; i<n; i++){
  185.         for(int u=0; u<k; u++){
  186.             A[i].taskai+=A[i].technika[u];
  187.             A[i].taskai+=A[i].artistiskumas[u];
  188.         }
  189.     }
  190. }
  191.  
  192. void rikiavimas(int n, pora A[]){
  193.     for(int i=0; i<n; i++){
  194.         for(int u=0; u<n; u++){
  195.             if(A[u].taskai<A[u+1].taskai){
  196.                 A[n+1].vardas=A[u].vardas;
  197.                 A[n+1].taskai=A[u].taskai;
  198.  
  199.                 A[u].vardas=A[u+1].vardas;
  200.                 A[u].taskai=A[u+1].taskai;
  201.  
  202.                 A[u+1].vardas=A[n+1].vardas;
  203.                 A[u+1].taskai=A[n+1].taskai;
  204.             }
  205.         }
  206.     }
  207. }
  208.  
  209. void isvedimas(pora A[], int n){
  210.     ofstream isv("U2rez.txt");
  211.     for(int i=0; i<n; i++){
  212.         isv << left << setw(20);
  213.         isv << A[i].vardas;
  214.         isv << " " << A[i].taskai << endl;
  215.     }
  216.     isv.close();
  217. }
  218.  
  219. //2012m. krepsinis
  220.  
  221. #include <iostream>
  222. #include <fstream>
  223.  
  224. using namespace std;
  225.  
  226. void rikiuoti(int startp[]);
  227. void skaityti(int &n, int numeriai[], int buvoaikstelej[], int buvosuolely[], int startinispenk[]);
  228. void skmazdaug(int n, int numeriai[], int buvo[], int &index);
  229. void isvesti(int startinispenk[], int numeriai[], int buvoaikstelej[], int buvosuolely[], int dzaideindex, int mzaideindex);
  230.  
  231.  
  232. int main()
  233. {
  234.     int n;
  235.     int numeriai[12]={0}, buvoaikstelej[12]={0}, buvosuolely[12]={0}, startinispenk[5]={0};
  236.     int dzaideindex=0, mzaideindex=0;
  237.  
  238.     skaityti(n, numeriai, buvoaikstelej, buvosuolely, startinispenk);
  239.     rikiuoti(startinispenk);
  240.     skmazdaug(n, numeriai, buvosuolely, mzaideindex);
  241.     skmazdaug(n, numeriai, buvoaikstelej, dzaideindex);
  242.     isvesti(startinispenk, numeriai, buvoaikstelej, buvosuolely, dzaideindex, mzaideindex);
  243. }
  244.  
  245. void skmazdaug(int n, int numeriai[], int buvo[], int &index){
  246.     int zaide=0;
  247.     for(int i=0; i<n; i++){
  248.         if(buvo[i]>zaide){index=i; zaide=buvo[i];}
  249.     }
  250. }
  251.  
  252. void skaityti(int &n, int numeriai[], int buvoaikstelej[], int buvosuolely[], int startinispenk[]){
  253.     int laikas, laiku, sp=0;
  254.     ifstream a("U1.txt");
  255.     a>>n;
  256.     for(int i=0; i<n; i++){
  257.         a>>numeriai[i];
  258.         a>>laiku;
  259.  
  260.         a>>laikas;
  261.         if(laikas>0){buvoaikstelej[i]+=laikas; startinispenk[sp]=numeriai[i]; sp++;}else{buvosuolely[i]-=laikas;}
  262.         for(int x=1; x<laiku; x++){
  263.             a>>laikas;
  264.             if(laikas>0){buvoaikstelej[i]+=laikas;}else{buvosuolely[i]-=laikas;}
  265.         }
  266.     }
  267.     a.close();
  268. }
  269.  
  270. void rikiuoti(int startp[]){
  271.     for(int a=0; a<5; a++){
  272.     for(int i=0; i<4; i++){
  273.         if(startp[i]>startp[i+1]){int temp=startp[i]; startp[i]=startp[i+1]; startp[i+1]=temp;}
  274.     }}
  275. }
  276.  
  277. void isvesti(int startinispenk[], int numeriai[], int buvoaikstelej[], int buvosuolely[], int dzaideindex, int mzaideindex){
  278.     ofstream isvedimas("U1rez.txt");
  279.     for(int i=0; i<5; i++){
  280.         isvedimas << startinispenk[i]<< " ";
  281.     }
  282.     isvedimas << endl << numeriai[dzaideindex] << " " << buvoaikstelej[dzaideindex] << endl;
  283.     isvedimas << numeriai[mzaideindex]<<" "<< buvosuolely[mzaideindex] << endl;
  284.     isvedimas.close();
  285. }
  286.  
  287. //2, kauliukai
  288.  
  289. #include <iostream>
  290. #include <fstream>
  291. #include <string>
  292.  
  293. using namespace std;
  294.  
  295. struct dievas{ // dievu struktura
  296.     string vardas;
  297.     int ismete[10]={0}, lyginiai=0, tasku=0;
  298. };
  299.  
  300. //funkciju prototipai
  301. void ivedimas(dievas A[], int &n, int &k);
  302. int rastiLaimetoja(int n, int k, dievas A[]);
  303. void isvedimas(dievas A[], int valdovas);
  304.  
  305. int main(){
  306.     dievas A[51];
  307.     int n, k, valdovoindex;
  308.     ivedimas(A, n, k);
  309.     valdovoindex=rastiLaimetoja(n, k, A);
  310.     isvedimas(A, valdovoindex);
  311. }
  312.  
  313. void ivedimas(dievas A[], int &n, int &k){
  314.     ifstream in("U2.txt");
  315.     in >> n >> k;
  316.     for(int i=0; i<n; i++){
  317.         in >> A[i].vardas;
  318.         for(int y=0; y<k; y++){
  319.             in >> A[i].ismete[y];
  320.         }
  321.     }
  322.     in.close();
  323. }
  324.  
  325. int rastiLaimetoja(int n, int k, dievas A[]){
  326.     int valdovas=0, valdovas2;
  327.     //sudedame visus valdovu taskus
  328.     for(int i=0; i<n; i++){
  329.         for(int y=0; y<k; y++){
  330.             if(A[i].ismete[y]%2==0){
  331.                 A[i].tasku+=A[i].ismete[y]; A[i].lyginiai++;
  332.             }else{A[i].tasku-=A[i].ismete[y];}
  333.         }
  334.     }
  335.     //ieskome valdovo
  336.     for(int i=0; i<n; i++){
  337.         if(A[i].tasku>A[valdovas].tasku){valdovas2=valdovas; valdovas=i;}
  338.     }
  339.     if(A[valdovas].tasku==A[valdovas2].tasku){
  340.         if(A[valdovas].lyginiai<A[valdovas2].lyginiai){valdovas=valdovas2;} else if(A[valdovas].lyginiai==A[valdovas2].lyginiai){
  341.             if(valdovas2>valdovas){valdovas=valdovas2;}
  342.         }
  343.     }
  344.     return valdovas; // grazinam valdovo indeksa
  345. }
  346.  
  347. void isvedimas(dievas A[], int valdovas){
  348.     ofstream out("U2rez.txt");
  349.     if(A[valdovas].vardas.length()<10){//     Va cia tai ziauriai prihackitna funkcija - nezinau, kaip kitaip galima spausdinti
  350.         int reikia=10-A[valdovas].vardas.length(); // butent 10 simboliu, nes nuskaito tai tik info iki tarpo. Na, bet kokiu
  351.         out << A[valdovas].vardas; // atveju - spausdina viska gerai, tad manau tiks
  352.         for(int i=0; i<reikia; i++){out << " ";}
  353.     }
  354.     out <<" "<< A[valdovas].tasku;
  355.     out.close();
  356. }
  357.  
  358.  
  359. //2013 metai. 1, apskritys
  360.  
  361. #include <iostream>
  362. #include <string>
  363. #include <fstream>
  364.  
  365. using namespace std;
  366.  
  367. struct miestas{ // miestu struktura
  368.     string pavadinimas;
  369.     string apskritis;
  370.     long unsigned int gyvsk; // gyventoju skaicius mieste
  371. };
  372.  
  373. struct apskritys{ // apskriciu struktura
  374.     string pavadinimas;
  375.     unsigned int maziausiai_gyv=500000; // maziausiame mieste gyventoju
  376.     unsigned int gyv_viso=0; // is viso apskrityje gyventoju
  377. };
  378.  
  379. //funkciju prototipai
  380. void ivedimas(int &miestu, miestas A[]);
  381. void skaiciuok(int &apskriciu, int miestu, miestas A[], apskritys B[]);
  382. void rikiuok(apskritys B[], int apskriciu);
  383. void isvedimas(apskritys B[], int apskriciu);
  384.  
  385. int main()
  386. {
  387.     int apskriciu=0, miestu;
  388.     miestas A[103];
  389.     apskritys B[10];
  390.     ivedimas(miestu, A);
  391.     skaiciuok(apskriciu, miestu, A, B);
  392.     rikiuok(B, apskriciu);
  393.     isvedimas(B, apskriciu);
  394. }
  395.  
  396. void ivedimas(int &miestu, miestas A[]){ // funkcija, skirta ivesti duomenims
  397.     ifstream ivesk("U2.txt");
  398.     ivesk >> miestu;
  399.     for(int i=0; i<miestu; i++){
  400.         ivesk >> A[i].pavadinimas >> A[i].apskritis >> A[i].gyvsk; // ivedame duomenis i miestu masyva
  401.     }
  402.     ivesk.close();
  403. }
  404.  
  405. void skaiciuok(int &apskriciu, int miestu, miestas A[], apskritys B[]){ // pagrindine funkcija, kurioje yra visa programos logika
  406.     bool yra=false; int kelintas;
  407.     for(int i=0; i<miestu; i++){
  408.         for(int x=0; x<=apskriciu; x++){
  409.             if(A[i].apskritis == B[x].pavadinimas){yra=true; kelintas=x;} // tikriname ar tokia apskritis jau yra, kad zinotume ar kurti ar ne, bei pasizymime kelinta ji
  410.         }
  411.         if(yra==false){ // jei tokios apskrities nera..
  412.             B[apskriciu].pavadinimas=A[i].apskritis; //kuriame nauja apskriti strukturoje
  413.             B[apskriciu].maziausiai_gyv=A[i].gyvsk;
  414.             B[apskriciu].gyv_viso+=A[i].gyvsk;
  415.             apskriciu++; // bei pridedame prie apskriciu skaiciaus vieneta
  416.         }else{ // jei tokia apskritis jau yra
  417.             B[kelintas].gyv_viso+=A[i].gyvsk; // pridedame miesto gyventoju skaiciu prie tos apskrities bendro gyv. sk.
  418.             if(B[kelintas].maziausiai_gyv>A[i].gyvsk){B[kelintas].maziausiai_gyv=A[i].gyvsk;} // bei patikriname ar tai nera maziausias miestas apskrity
  419.         }
  420.         yra=false;
  421.     }
  422. }
  423.  
  424. void rikiuok(apskritys B[], int apskriciu){ // rikiavimo funkcija.
  425.     // pastaba : B[apskriciu+1] yra lyg laikinas elementas strukturos, i kuri galime padeti laikinai elementus kai norime juos apkeisti vietomis.
  426.     // apskriciu+1, nes jis jau yra nenaudojamas, t.y. jis yra sekantis po visu apskriciu.
  427.     for(int x=0; x<apskriciu; x++){
  428.     for(int i=0; i<apskriciu; i++){
  429.         if(B[i].maziausiai_gyv==B[i+1].maziausiai_gyv){ // jeigu apskriciu maziausiu miestu gyventoju skaiciai yra lygus
  430.             for(int x=0; x<apskriciu; x++){ // tai rikiuojame pagal pavadinimo pirmaja raide.
  431.                 for(int i=0; i<apskriciu; i++){
  432.                     if(B[i].pavadinimas[0]>B[i+1].pavadinimas[0]){
  433.                         B[apskriciu+1].pavadinimas=B[i].pavadinimas;
  434.                         B[i].pavadinimas=B[i+1].pavadinimas;
  435.                         B[i+1].pavadinimas=B[apskriciu+1].pavadinimas;
  436.  
  437.                         B[apskriciu+1].maziausiai_gyv=B[i].maziausiai_gyv;
  438.                         B[i].maziausiai_gyv=B[i+1].maziausiai_gyv;
  439.                         B[i+1].maziausiai_gyv=B[apskriciu+1].maziausiai_gyv;
  440.  
  441.                         B[apskriciu+1].gyv_viso=B[i].gyv_viso;
  442.                         B[i].gyv_viso=B[i+1].gyv_viso;
  443.                         B[i+1].gyv_viso=B[apskriciu+1].gyv_viso;
  444.                     }
  445.                 }
  446.             }// o jeigu maziausiu miestu gyv. sk. yra nelygus, tada rikiuojame pagal juos.
  447.         } else if(B[i].maziausiai_gyv>B[i+1].maziausiai_gyv){
  448.             B[apskriciu+1].pavadinimas=B[i].pavadinimas;
  449.             B[i].pavadinimas=B[i+1].pavadinimas;
  450.             B[i+1].pavadinimas=B[apskriciu+1].pavadinimas;
  451.  
  452.             B[apskriciu+1].maziausiai_gyv=B[i].maziausiai_gyv;
  453.             B[i].maziausiai_gyv=B[i+1].maziausiai_gyv;
  454.             B[i+1].maziausiai_gyv=B[apskriciu+1].maziausiai_gyv;
  455.  
  456.             B[apskriciu+1].gyv_viso=B[i].gyv_viso;
  457.             B[i].gyv_viso=B[i+1].gyv_viso;
  458.             B[i+1].gyv_viso=B[apskriciu+1].gyv_viso;
  459.         }
  460.     }
  461.     }
  462. }
  463.  
  464. void isvedimas(apskritys B[], int apskriciu){ // isvedimo i faila funkcija
  465.     ofstream isvest("U2rez.txt"); // atidarom faila
  466.     isvest << apskriciu << endl; // isvedam apskriciu skaiciu
  467.     for(int i=0; i<apskriciu; i++){
  468.         isvest << B[i].pavadinimas << " " << B[i].maziausiai_gyv << " " << B[i].gyv_viso << endl; // vedam visu apskriciu duomenis kurie jau surikiuoti
  469.     }
  470.     isvest.close();
  471. }
  472.  
  473. //2, siuntu tarnyba
  474.  
  475. #include <iostream>
  476. #include <string>
  477. #include <fstream>
  478. #include <cmath>
  479.  
  480. using namespace std;
  481.  
  482. struct imones{ // imoniu struktura
  483.     string vardas; // imones vardas
  484.     int koordx; // imones koordinate x
  485.     int koordy; // imones koordinate y
  486. };
  487.  
  488.  
  489. //funkciju prototipai
  490. void skaityti(int &n, int &m, imones A[]);
  491. void vazinet(int &n, int &m, imones A[], int &nuvazkm, int &aptarnim, int &index);
  492. void isvesti(int aptarnim, int nuvazkm, int index, imones A[]);
  493.  
  494. int main()
  495. {
  496.     imones A[50]; // sukuriamas strukturu masyvas, is 50 nariu, nes max. imoniu riba - 50
  497.     int n, m, nuvazkm=0, aptarnim=0,index; // nuvaziavo kilometru, ir kiek aptarnavo imoniu ^^
  498.     skaityti(n, m, A);
  499.     vazinet(n, m, A, nuvazkm, aptarnim, index);
  500.     isvesti(aptarnim, nuvazkm, index, A);
  501.  
  502. }
  503.  
  504. void skaityti(int &n, int &m, imones A[]){ // duomenu skaitymo funkcija
  505.     ifstream ivest("U1.txt");
  506.     ivest >> n >> m;
  507.     for(int i=0; i<n; i++){
  508.         ivest >> A[i].vardas >> A[i].koordx >> A[i].koordy;
  509.     }
  510.     ivest.close();
  511. }
  512.  
  513. void vazinet(int &n, int &m, imones A[], int &nuvazkm, int &aptarnim, int &index){ // pagrindine skaiciavimo f-ja
  514.     for(int i=0; i<n; i++){
  515.     int nuvDb=(fabs(A[i].koordx)+fabs(A[i].koordy))*2; // apskaiciuojama, kiek nuvaziuos dabartiniu vaziavimu
  516.         if(nuvazkm+nuvDb<=m){ // jei prie jau nuvaziuotu kilometru pridejus 39 eil. kilometrus nebus perzengtas limitas
  517.             nuvazkm+=nuvDb;//prie nuvaziuotu kilometru pridedami naujai nuvaziuoti kilometrai
  518.             aptarnim++; // aptarnautos imones +1
  519.             index=i; // pasizymimas paskutines imones indeksas, kad veliau galetu me isvesti jos varda
  520.         }
  521.     }
  522. }
  523.  
  524.  
  525. void isvesti(int aptarnim, int nuvazkm, int index, imones A[]){ // isvedimo funkcija
  526.     ofstream isvest("U2.txt"); // atidaromas isvedimo failas
  527.     isvest << aptarnim << " " << nuvazkm << " " << A[index].vardas; // i faila isvedami visi reikalingi duomenys
  528.     isvest.close(); // uzdaromas isvedimo failas
  529. }
  530.  
  531.  
  532. //2014m, pirma, imones
  533.  
  534. #include <iostream>
  535. #include <fstream>
  536. using namespace std;
  537.  
  538. int main(){
  539.     int k, balsai[4]={0}, taskai[4]={0}, direktoriaus[4], laimetojas, visobalsai[4]={0};
  540.     ifstream in;
  541.     in.open("U1.txt");
  542.     in >> k;
  543.  
  544.     for(int i=1; i<=k; i++){
  545.         in >> balsai[1] >> balsai[2] >> balsai[3];
  546.         if(balsai[1]>balsai[2] && balsai[1]>balsai[3]){
  547.             taskai[1]+=4;
  548.             visobalsai[1]+=balsai[1];
  549.             visobalsai[2]+=balsai[2];
  550.             visobalsai[3]+=balsai[3];
  551.             }
  552.         else if(balsai[2]>balsai[1] && balsai[2]>balsai[3]){
  553.             taskai[2]+=4;
  554.             visobalsai[1]+=balsai[1];
  555.             visobalsai[2]+=balsai[2];
  556.             visobalsai[3]+=balsai[3];
  557.             }
  558.         else if(balsai[3]>balsai[1] && balsai[3]>balsai[2]){
  559.             taskai[3]+=4;
  560.             visobalsai[1]+=balsai[1];
  561.             visobalsai[2]+=balsai[2];
  562.             visobalsai[3]+=balsai[3];}
  563.         else if(balsai[1]==balsai[2] && balsai[2]>balsai[3]){
  564.             taskai[1]+=2;
  565.             taskai[2]+=2;
  566.             visobalsai[1]+=balsai[1];
  567.             visobalsai[2]+=balsai[2];
  568.             visobalsai[3]+=balsai[3];
  569.         }
  570.         else if(balsai[1]==balsai[3] && balsai[3]>balsai[2]){
  571.             taskai[1]+=2;
  572.             taskai[3]+=2;
  573.             visobalsai[1]+=balsai[1];
  574.             visobalsai[2]+=balsai[2];
  575.             visobalsai[3]+=balsai[3];
  576.         }
  577.         else if(balsai[2]==balsai[3] && balsai[3]>balsai[1]){
  578.             taskai[2]+=2;
  579.             taskai[3]+=2;
  580.             visobalsai[1]+=balsai[1];
  581.             visobalsai[2]+=balsai[2];
  582.             visobalsai[3]+=balsai[3];
  583.         }
  584.     }
  585.     if(((taskai[1]==taskai[2])&&taskai[1]>taskai[3]) || ((taskai[1]==taskai[3])&&taskai[1]>taskai[2])||((taskai[2]==taskai[3])&&taskai[2]>taskai[3])){
  586.         in>>direktoriaus[1]>>direktoriaus[2]>>direktoriaus[3];
  587.         taskai[1]+=direktoriaus[1];
  588.         taskai[2]+=direktoriaus[2];
  589.         taskai[3]+=direktoriaus[3];
  590.     }
  591.     in.close();
  592.     if(taskai[1]>taskai[2] && taskai[1]>taskai[3]){laimetojas=1;}
  593.     else if(taskai[2]>taskai[1] && taskai[2]>taskai[3]){laimetojas=2;}
  594.     else {laimetojas=3;};
  595.  
  596.     ofstream out;
  597.     out.open("U1rex.txt");
  598.     out << visobalsai[1] << " " << visobalsai[2] << " " << visobalsai[3] << endl;
  599.     out << taskai[1] << " " << taskai[2] << " " << taskai[3] << endl;
  600.     out << laimetojas;
  601.     out.close();
  602. }
  603.  
  604.  
  605. // antra, marsaeigis 2014m
  606. #include <iostream>
  607. #include <vector>
  608. #include <fstream>
  609.  
  610. using namespace std;
  611.  
  612. struct kelione{
  613.     int seka[30];
  614.     int sekosilgis;
  615. };
  616. ofstream isvedimas("U2rez.txt");
  617. void ivedimas(int &x, int &y, int &xt, int &yt, int &sekusk, kelione A[]);
  618. void keliauk(int &x, int &y, int xt, int yt, int sekusk, kelione A[]);
  619. void spausdink(bool pasiektas, int komanduivykd, kelione A[], int pg);
  620.  
  621.  
  622. int main()
  623. {
  624.     int x, y, xt, yt, sekusk; //dabartines koord. x ir y; xt - x tikslas, yt - y tikslas.
  625.     kelione A[30];
  626.     ivedimas(x, y, xt, yt, sekusk, A);
  627.     keliauk(x,y,xt,yt,sekusk, A);
  628.     isvedimas.close();
  629. }
  630.  
  631. void ivedimas(int &x, int &y, int &xt, int &yt, int &sekusk, kelione A[]){
  632.     ifstream ivesk("U2.txt");
  633.     ivesk >> x >> y;
  634.     ivesk >> xt >> yt;
  635.     ivesk >> sekusk;
  636.     for (int i=0; i<sekusk; i++){
  637.         ivesk >> A[i].sekosilgis;
  638.         for(int x=0; x<A[i].sekosilgis; x++){
  639.             ivesk >> A[i].seka[x];
  640.         }
  641.     }
  642.     ivesk.close();
  643. }
  644.  
  645. void keliauk(int &x, int &y, int xt, int yt, int sekusk, kelione A[]){
  646.     int sekosnr=0, komanduivykd=0;
  647.     bool pasiektas=false;
  648.     for(int pg=0; pg<sekusk; pg++){
  649.     pasiektas=false, sekosnr=0, komanduivykd=0;
  650.     int xdab=x, ydab=y;
  651.     while((xdab!=xt || ydab!=yt) && sekosnr<A[pg].sekosilgis){
  652.         switch(A[pg].seka[sekosnr]){
  653.             case 1:ydab++; sekosnr++; komanduivykd++;
  654.             break;
  655.             case 2:xdab++; sekosnr++; komanduivykd++;
  656.             break;
  657.             case 3:ydab--; sekosnr++; komanduivykd++;
  658.             break;
  659.             case 4:xdab--; sekosnr++; komanduivykd++;
  660.             break;
  661.             default:
  662.             break;
  663.         }
  664.     }
  665.     if(xdab==xt && ydab==yt){pasiektas=true; spausdink(pasiektas, komanduivykd, A, pg);}
  666.     else {pasiektas=false; spausdink(pasiektas, komanduivykd, A, pg);}
  667.     }
  668. }
  669.  
  670. void spausdink(bool pasiektas, int komanduivykd, kelione A[], int pg){
  671.     if(pasiektas==true){isvedimas << "pasiektas tikslas   ";}else {isvedimas << "sekos pabaiga       ";}
  672.     int x;
  673.     for(x=0; x<komanduivykd; x++){
  674.         isvedimas << A[pg].seka[x] << " ";
  675.     }
  676.     isvedimas<<x;
  677.     isvedimas << endl;
  678. }
  679.  
  680. //2015 antra, avys
  681.  
  682. #include <iostream>
  683. #include <string>
  684. #include <fstream>
  685.  
  686. using namespace std;
  687.  
  688. struct Avis{
  689.         string Vardas;
  690.         string DNR;
  691.         int koef=0;
  692. };
  693.  
  694. void Nuskaitymas(Avis A[], int & avys, int & frag, int & eil_nr);
  695. void Veiksmas(Avis A[], int avys, int frag, int tiriama_avis);
  696. void Rikiavimas(Avis A[], int tiriama_avis, int avys);
  697. void Output(Avis A[], int tiriama_avis, int avys);
  698.  
  699. int main(){
  700.         int aviu_skaicius;
  701.         int DNR_ilgis;
  702.         int tiriama_avis;
  703.         Avis A[10];
  704.         Nuskaitymas(A, aviu_skaicius, DNR_ilgis, tiriama_avis);
  705.         Veiksmas(A, aviu_skaicius, DNR_ilgis, tiriama_avis);
  706.         Rikiavimas(A, tiriama_avis, aviu_skaicius);
  707.         Output(A, tiriama_avis, aviu_skaicius);
  708. }
  709.  
  710. void Nuskaitymas(Avis A[], int & avys, int & frag, int & eil_nr){
  711.         ifstream fd("U2.txt");
  712.         fd >> avys >> frag;
  713.         fd >> eil_nr;
  714.         for (int i = 0; i < avys; i++)
  715.         {
  716.                 fd >> A[i].Vardas >> A[i].DNR;
  717.         }
  718.         fd.close();
  719. }
  720. void Veiksmas(Avis A[],int avys, int frag, int tiriama_avis){
  721.         for (int i = 0; i < avys; i++)
  722.         {
  723.                 if(i!=tiriama_avis-1){
  724.                 for (int j = 0; j < frag; j++)
  725.                 {
  726.                         if (A[i].DNR[j] == A[tiriama_avis-1].DNR[j])
  727.                         {
  728.                                 A[i].koef++;
  729.                         }
  730.                 }
  731.                 }
  732.         }
  733. }
  734.  
  735. void Rikiavimas(Avis A[], int tiriama_avis, int avys){
  736.     //tiriama avi i pirma poz
  737.     A[avys+1].Vardas = A[0].Vardas;
  738.     A[0].Vardas = A[tiriama_avis-1].Vardas;
  739.     A[tiriama_avis-1].Vardas = A[avys+1].Vardas;
  740.     A[avys+1].koef = A[0].koef;
  741.     A[0].koef = A[tiriama_avis-1].koef;
  742.     A[tiriama_avis-1].koef = A[avys+1].koef;
  743.     //rikiuojam
  744.     for(int i=1; i<avys; i++){
  745.         for(int j=i+1; j<avys; j++){
  746.             if(A[i].koef!=A[j].koef){
  747.                 if(A[i].koef<A[j].koef){
  748.                     A[avys+1].Vardas=A[i].Vardas;
  749.                     A[avys+1].koef=A[i].koef;
  750.                     A[i].Vardas=A[j].Vardas;
  751.                     A[i].koef=A[j].koef;
  752.                     A[j].Vardas=A[avys+1].Vardas;
  753.                     A[j].koef=A[avys+1].koef;
  754.                 }
  755.             }else{
  756.                 if(A[i].Vardas>A[j].Vardas){
  757.                     A[avys+1].Vardas=A[i].Vardas;
  758.                     A[avys+1].koef=A[i].koef;
  759.                     A[i].Vardas=A[j].Vardas;
  760.                     A[i].koef=A[j].koef;
  761.                     A[j].Vardas=A[avys+1].Vardas;
  762.                     A[j].koef=A[avys+1].koef;
  763.                 }
  764.             }
  765.         }
  766.     }
  767. }
  768.  
  769. void Output(Avis A[], int tiriama_avis, int avys){
  770.     ofstream out("U2rez.txt");
  771.     out << A[0].Vardas << endl;
  772.     for(int i=1; i<avys; i++){
  773.         out << A[i].Vardas << " " << A[i].koef << endl;
  774.     }
  775.     out.close();
  776. }
  777.  
  778.  
  779. //2015 pirmos turiu kazkiek pasirases, bet manrods bugas yra, tai nemesiu.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement