Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string.h>
- #include <string>
- using namespace std;
- //void nuskaitymas(int &i);
- //void rikiavimas (int &i);
- //int bRik[500];
- struct finisas {
- int startNr;
- int LaikasS[3];
- int LaikasF[3];
- string vardas;
- string pavarde;
- } uzdavinys [520], temp;
- void Rikiuoti(int i);
- bool Raktas(finisas a, finisas b);
- void spausdinti(int i);
- int main() {
- int nrF;
- int L[3];
- int i = 0;
- ifstream fds("Startas.txt");
- ifstream fdf("Finisas.txt");
- while(!fds.eof()) {
- fds >> uzdavinys[i].startNr >> uzdavinys[i].vardas >> uzdavinys[i].pavarde >> uzdavinys[i].LaikasS[0] >> uzdavinys[i].LaikasS[1] >> uzdavinys[i].LaikasS[2];
- i++;
- }
- i--;
- i--;
- for (int n = 0; n <= i; n++) {
- fdf >> nrF >> L[0] >> L[1] >> L[2];
- for (int j = 0; j <= i; j++) {
- if(nrF == uzdavinys[j].startNr) {
- uzdavinys[j].LaikasF[0] = L[0];
- uzdavinys[j].LaikasF[1] = L[1];
- uzdavinys[j].LaikasF[2] = L[2];
- break;
- }
- }
- }
- Rikiuoti(i);
- spausdinti(i);
- cin >> i;
- }
- void Rikiuoti(int i) {
- for(int j = 0; j < i; j++) {
- for (int n = 0; n < i; n++) {
- if (Raktas(uzdavinys[j],uzdavinys[n])) {
- temp = uzdavinys[n] ;
- uzdavinys[n] = uzdavinys[j];
- uzdavinys[j] = temp;
- }
- }
- }
- for (int j = 0; j <= i; j++) {
- //cout << uzdavinys[j].startNr << endl;
- }
- }
- bool Raktas(finisas a, finisas b) {
- if (((a.LaikasS[0]*3600 + a.LaikasS[1]*60 + a.LaikasS[2]) - (a.LaikasF[0]*3600 + a.LaikasF[1]*60 + a.LaikasF[2])) < ((b.LaikasS[0]*3600 + b.LaikasS[1]*60 + b.LaikasS[2]) - (b.LaikasF[0]*3600 + b.LaikasF[1]*60 + b.LaikasF[2])) ||
- ((a.LaikasS[0]*3600 + a.LaikasS[1]*60 + a.LaikasS[2]) - (a.LaikasF[0]*3600 + a.LaikasF[1]*60 + a.LaikasF[2])) == ((b.LaikasS[0]*3600 + b.LaikasS[1]*60 + b.LaikasS[2]) - (b.LaikasF[0]*3600 + b.LaikasF[1]*60 + b.LaikasF[2])) && (a.vardas> b.vardas)
- )
- {
- return true;
- }}
- void spausdinti(int i) {
- for (int n = 0; n <= i; n++) {
- cout << uzdavinys[n].startNr << " " << uzdavinys[n].vardas << " " << (uzdavinys[n].LaikasF[0]*3600 + uzdavinys[n].LaikasF[1]*60 + uzdavinys[n].LaikasF[2]) - (uzdavinys[n].LaikasS[0]*3600 + uzdavinys[n].LaikasS[1]*60 + uzdavinys[n].LaikasS[2]) << " " << uzdavinys[n].LaikasS[0] << endl;
- //cout << uzdavinys[n].LaikasF[0] << " " << uzdavinys[n].LaikasF[1] << " " << uzdavinys[n].LaikasF[2] << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement