Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <sstream>
- #include <ctime>
- #include <vector>
- #include <cstdlib>
- #include <cstring>
- #include <cstdio>
- using namespace std;
- struct Slaptazodis {
- char s[16];
- int ilgis;
- int didz;
- int maz;
- int skait;
- int spec;
- char stipr[10];
- };
- Slaptazodis gauti(const char eil[], int ilgis){
- Slaptazodis s;
- memset(s.s, ' ', 15);
- strncpy(s.s, eil, 15);
- memset(s.stipr, ' ', 9);
- sscanf(eil+15, "%d%d%d%d%d%*c%s", &s.ilgis, &s.didz, &s.maz, &s.skait, &s.spec, s.stipr);
- memset(s.stipr+strlen(s.stipr), ' ', 9-strlen(s.stipr));
- return s;
- }
- int nustatytiPanasuma(Slaptazodis n, Slaptazodis v){
- int x = 0;
- x += abs(n.ilgis - v.ilgis);
- x += abs(n.didz - v.didz);
- x += abs(n.maz - v.maz);
- x += abs(n.skait - v.skait);
- x += abs(n.spec - v.spec);
- return x;
- }
- void surikiuoti(Slaptazodis s[], int dydis){
- for(int i = 0; i < dydis; i++){
- for(int j = 0; j < dydis-1; j++){
- if(s[j].ilgis < s[j+1].ilgis){
- Slaptazodis temp = s[j];
- s[j] = s[j+1];
- s[j+1] = temp;
- }
- }
- }
- }
- int main(){
- ofstream out("U2rez.txt");
- Slaptazodis naud[5], vaid[25];
- ifstream in("U1.txt");
- int kiekN, kiekV;
- in >> kiekN >> kiekV;
- string line;
- getline(in, line);
- for(int i = 0; i < kiekN; ++i){
- getline(in, line);
- Slaptazodis s = gauti(line.c_str(), line.size());
- //spausdinti(s);
- naud[i] = s;
- }
- for(int i = 0; i < kiekV; ++i){
- getline(in, line);
- Slaptazodis s = gauti(line.c_str(), line.size());
- //spausdinti(s);
- vaid[i] = s;
- }
- for(int i = 0; i < kiekV; ++i){
- //spausdinti(vaid[i]);
- }
- //cout << endl << endl;
- surikiuoti(vaid, kiekV);
- for(int i = 0; i < kiekV; ++i){
- //spausdinti(vaid[i]);
- }
- //spausdinti(naud[0]);
- //spausdinti(vaid[2]);
- //cout << nustatytiPanasuma(naud[0], vaid[2]);
- for(int i = 0; i < kiekN; ++i){
- Slaptazodis n = naud[i];
- out << n.s;
- int minPan = 9999999;
- string str = "";
- for(int ii = 0; ii < kiekV; ++ii){
- int pan = nustatytiPanasuma(n, vaid[ii]);
- if(pan < minPan){
- minPan = pan;
- str = vaid[ii].stipr;
- }
- }
- out << str << " " << minPan << endl;
- for(int ii = 0; ii < kiekV; ++ii){
- int pan = nustatytiPanasuma(n, vaid[ii]);
- if(pan == minPan){
- out << vaid[ii].s << endl;
- }
- }
- }
- in.close();
- out.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement