zulonas

Kauliukai

Jan 13th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. struct vald{
  7.     char name[10];
  8.     int all=0;  // visi
  9.     int dby2=0; // is 2
  10. };
  11.  
  12. void read(int &d, int &k, struct vald valdovai[]);
  13. void write(int d, int k, struct vald valdovai[]);
  14. int highest(int d, int k, struct vald valdovai[]);
  15.  
  16. int main(){
  17.     int d, k; // d- dievai, k - kauliukai
  18.     vald valdovai[50];
  19.  
  20.     read(d, k, valdovai);
  21.     write(d, k, valdovai);
  22.    
  23.     return 0;
  24. }
  25.  
  26. void read(int &d, int &k, struct vald valdovai[]){
  27.     int temp;
  28.     ifstream fr;
  29.     fr.open("U2.txt");
  30.    
  31.     fr>>d>>k;
  32.    
  33.     for(int x=0; x<d; x++){
  34.         fr.ignore();
  35.         fr.get(valdovai[x].name,10);
  36.         for(int y=0; y<k; y++){
  37.             fr >>temp;
  38.             valdovai[x].all+=temp;
  39.             if(temp%2==0)
  40.                 valdovai[x].dby2++;
  41.         }
  42.     }
  43.    
  44.     fr.close();
  45. }
  46.  
  47. void write(int d, int k, struct vald valdovai[]){
  48.     ofstream out;
  49.     out.open("U2_out.txt");
  50.    
  51.     out<<valdovai[highest(d, k, valdovai)].name;
  52.     out<<valdovai[highest(d, k, valdovai)].all;
  53.    
  54.     out.close();
  55. }
  56.  
  57. int highest(int d, int k, struct vald valdovai[]){
  58.     int max_value=0, numbofval=0, pasikart[50];
  59.    
  60.     for(int x=0; x<d; x++){
  61.         if(valdovai[x].all>valdovai[max_value].all)
  62.             max_value=x;
  63.     }
  64.     for(int x=0; x<d; x++){
  65.         if(valdovai[x].all==valdovai[max_value].all){
  66.             pasikart[numbofval] = x;
  67.             numbofval++;
  68.         }
  69.     }
  70.    
  71.     if(numbofval)
  72.         return max_value; // jeigu nera pasikartojanciu
  73.     else{
  74.        
  75.         int daug_l=pasikart[0];
  76.        
  77.         for(int x=0; x<numbofval; x++){
  78.             if(valdovai[pasikart[x]].dby2>valdovai[daug_l].dby2)
  79.                 daug_l=x;
  80.         }
  81.        
  82.         for(int x=0; x<numbofval; x++){
  83.             if(valdovai[pasikart[x]].dby2==valdovai[daug_l].dby2){
  84.                 return pasikart[x]; // jeigu su keliais lyginiais arba pagal sarasa
  85.             }
  86.         }
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment