問題のブルーブリッジカップアルゴリズムソリューション前回の質問が間違っノート

タイトル説明

問題の説明には、
秘密のユニットの下のいくつかのノートを作って、完全に今年の終わりに回復します。
各チケットは、固有のID番号を持っています。すべての年次法案のID番号が連続しているが、デジタルIDの先頭がランダムに選択されています。
壊れたID番号、他のAの重のID番号で、その結果、ID番号を入力する場合ためスタッフ過失、エラーが発生しました。
あなたの仕事は、壊れた数字のIDのID番号と重量を見つけるようにプログラムされています。
最小および最大数に生じにくい番号をオフと仮定する。

入力フォーマットは、
第(N <100)N整数プログラムを入力所要次のデータの行数を表します。
そして、Nラインのデータを読み込みます。
分離スペース、複数の不等長の各行は、(100未満)の正の整数(ない10万人以上)ラインは、余分なスペースや行の終わりを有することができること、してくださいノートでは、あなたがプログラム空間を扱うことができるようにする必要があります。
ID番号を表す各整数。

出力形式は、
スペースで区切られた2つの整数のMnを含む、プログラム出力ライン1を必要としました。
ここで、mは壊れIDの数を表し、nは重量のID番号を表し

サンプル入力1
2
。5 6 8 11 9
10 9 12は、
サンプル出力1
。7 9

サンプル入力2
。6
164 178 108 109 182 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 173,122,136,174,191 145,116,151,143,175 120,161,134,162,190
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
サンプル出力2
105 120

ソリューション:

この問題は、非常に簡単で重量の数を決定する行の順序は、番号の前の数に等しいnは、数 - オフ= 2の数の前の中間数をmであることを示しています。

コード

#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;
}
彼は197元の記事を発表 ウォン称賛18 ビュー20000 +

おすすめ

転載: blog.csdn.net/qq_41708792/article/details/105332123