Advertisement
irmantas_radavicius

Untitled

May 21st, 2024
672
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.77 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <sstream>
  5. #include <ctime>
  6. #include <vector>
  7. #include <cstdlib>
  8. #include <cstring>
  9. #include <cstdio>
  10.  
  11. using namespace std;
  12.  
  13. struct Slaptazodis {
  14.     char s[16];
  15.     int ilgis;
  16.     int didz;
  17.     int maz;
  18.     int skait;
  19.     int spec;
  20.     char stipr[10];
  21. };
  22.  
  23. Slaptazodis gauti(const char eil[], int ilgis){
  24.     Slaptazodis s;
  25.     memset(s.s, ' ', 15);
  26.     strncpy(s.s, eil, 15);
  27.     memset(s.stipr, ' ', 9);
  28.     sscanf(eil+15, "%d%d%d%d%d%*c%s", &s.ilgis, &s.didz, &s.maz, &s.skait, &s.spec, s.stipr);
  29.     memset(s.stipr+strlen(s.stipr), ' ', 9-strlen(s.stipr));
  30.     return s;
  31. }
  32.  
  33.  
  34. int nustatytiPanasuma(Slaptazodis n, Slaptazodis v){
  35.     int x = 0;
  36.     x += abs(n.ilgis - v.ilgis);
  37.     x += abs(n.didz - v.didz);
  38.     x += abs(n.maz - v.maz);
  39.     x += abs(n.skait - v.skait);
  40.     x += abs(n.spec - v.spec);
  41.     return x;
  42. }
  43.  
  44. void surikiuoti(Slaptazodis s[], int dydis){
  45.     for(int i = 0; i < dydis; i++){
  46.         for(int j = 0; j < dydis-1; j++){
  47.             if(s[j].ilgis < s[j+1].ilgis){
  48.                 Slaptazodis temp = s[j];
  49.                 s[j] = s[j+1];
  50.                 s[j+1] = temp;
  51.             }
  52.         }
  53.     }
  54.  
  55. }
  56.  
  57. int main(){
  58.  
  59.     ofstream out("U2rez.txt");
  60.  
  61.     Slaptazodis naud[5], vaid[25];
  62.  
  63.     ifstream in("U1.txt");
  64.  
  65.     int kiekN, kiekV;
  66.     in >> kiekN >> kiekV;
  67.  
  68.     string line;
  69.     getline(in, line);
  70.  
  71.     for(int i = 0; i < kiekN; ++i){
  72.         getline(in, line);
  73.         Slaptazodis s = gauti(line.c_str(), line.size());
  74.         //spausdinti(s);
  75.         naud[i] = s;
  76.     }
  77.  
  78.     for(int i = 0; i < kiekV; ++i){
  79.         getline(in, line);
  80.         Slaptazodis s = gauti(line.c_str(), line.size());
  81.         //spausdinti(s);
  82.         vaid[i] = s;
  83.     }
  84.  
  85.     for(int i = 0; i < kiekV; ++i){
  86.         //spausdinti(vaid[i]);
  87.     }
  88.     //cout << endl << endl;
  89.     surikiuoti(vaid, kiekV);
  90.     for(int i = 0; i < kiekV; ++i){
  91.         //spausdinti(vaid[i]);
  92.     }
  93.  
  94.  
  95.     //spausdinti(naud[0]);
  96.     //spausdinti(vaid[2]);
  97.     //cout << nustatytiPanasuma(naud[0], vaid[2]);
  98.  
  99.     for(int i = 0; i < kiekN; ++i){
  100.         Slaptazodis n = naud[i];
  101.         out << n.s;
  102.         int minPan = 9999999;
  103.         string str = "";
  104.         for(int ii = 0; ii < kiekV; ++ii){
  105.             int pan = nustatytiPanasuma(n, vaid[ii]);
  106.             if(pan < minPan){
  107.                 minPan = pan;
  108.                 str = vaid[ii].stipr;
  109.             }
  110.         }
  111.         out << str << " " << minPan << endl;
  112.  
  113.         for(int ii = 0; ii < kiekV; ++ii){
  114.             int pan = nustatytiPanasuma(n, vaid[ii]);
  115.             if(pan == minPan){
  116.                 out << vaid[ii].s << endl;
  117.             }
  118.  
  119.         }
  120.  
  121.     }
  122.  
  123.  
  124.     in.close();
  125.     out.close();
  126.     return 0;
  127. }
  128.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement