Blue Bridge Cup Algorithmus Lösung für ein Problem, das die vorherigen Fragen falsche Noten

Titel Beschreibung

Problembeschreibung
machte einige Anmerkungen einer geheimen Einheit nach unten, und in vollem Umfang am Ende des Jahres zurückgewonnen werden.
Jedes Ticket hat eine eindeutige ID - Nummer. Alle jährliche Rechnung ID - Nummer ist kontinuierlich, aber der Beginn einer digitalen ID wird zufällig ausgewählt.
Wegen Personal Nachlässigkeit, ist ein Fehler aufgetreten , wenn die ID - Nummer einzugeben, in einer gebrochenen ID - Nummer führt, die andere eine schwere ID - Nummer.
Ihre Aufgabe ist programmiert , um die ID - ID - Nummer und Gewicht gebrochener Zahlen zu finden.
Angenommen off Zahl kaum in den minimalen und maximalen Anzahl auftreten.

Eingabeformat
erforderlich gibt zuerst ein Programm ganze Zahl N (N <100) stellt die Anzahl von Zeilen von Daten , die folgen.
Dann liest die Daten von N Zeilen.
Jede Reihe von ungleicher Länge, mit einer Vielzahl von getrennten Räumen (weniger als 100) positive ganze Zahl (nicht mehr als 100.000), bitte beachten Sie, dass die Linie haben zusätzliche Leerzeichen und Ende der Leitung, müssen Sie in der Lage sein , den Programmplatz zu handhaben .
Jede ganze Zahl , die eine ID - Nummer.

Ausgabeformat
erforderlichen Programmausgangsleitung 1, die zwei ganze Zahlen Mn, durch Leerzeichen getrennt sind.
Wobei stellt m die Anzahl der gebrochenen ID, n die ID - Nummer des Gewichts

Probeneingabe 1
2
. 5. 6. 8. 11. 9
10. 9 12 ist
ein Beispiel für die Ausgabe 1
. 7. 9

Probeneingang 2
. 6
164 108 109 182 178 180,155,141,159,104 179,118,137,184,115 124,125,129,168,196
172,189,127,107,112 192,103,131,133,169 158
128 102 110 148 139,157,140,195,197
185,152,135,106,123 145,116,151,143,175 120,161,134,162,190 173,122,136,174,191
149,138,142,146,199 126,165,156,153,193 144,166,170,121,171 132,101,194,187,188
113,130,176,154,177 120,117,150,114,183 186,181,100,163,160 167.147.198.111.119
Probenausgang 2
105 120

Lösung:

Diese Frage ist sehr einfach, eine Zeile Ordnung, die die Anzahl des Gewichts bestimmt ist gleich die vorherige Anzahl der Zahl n, die Zahl den der - vor einer Anzahl von OFF = 2 zeigt an, daß die Zwischenzahl m.

Code :

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <deque>
#include <list>
#include <utility>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <bitset>
#include <iterator>
using namespace std;

typedef long long ll;
const int inf = 0x3f3f3f3f;
const ll  INF = 0x3f3f3f3f3f3f3f3f;
const double PI = acos(-1.0);
const double E = exp(1.0);
const int MOD = 1e9+7;
const int MAX = 1e5+5;

int N;
vector <int> vec;
int m,n;

int main()
{
    /*
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    */
    cin >> N;
    int num;
    while(scanf("%d",&num) != EOF)
    {
        vec.push_back(num);
    }
    sort(vec.begin(),vec.end());
    for(int i = 1; i < (int)vec.size(); i++)
    {
        if(vec[i]-vec[i-1] == 2)
        {
            m = vec[i]-1;
        }
        if(vec[i] == vec[i-1])
        {
            n = vec[i];
        }
    }
    cout << m << " " << n << endl;

    return 0;
}
Er veröffentlichte 197 Originalarbeiten · erntete Lob 18 · Ansichten 20000 +

Ich denke du magst

Origin blog.csdn.net/qq_41708792/article/details/105332123
Empfohlen
Rangfolge