Acwing1204 錯誤票據 題解

2022-09-21 20:51:16 字數 1219 閱讀 1468

題目描述

某涉密單位下發了某種票據,並要在年終全部收回。

每張票據有唯一的 id 號。

全年所有票據的 id 號是連續的,但 id 的開始數碼是隨機選定的。

因為工作人員疏忽,在錄入 id 號的時候發生了一處錯誤,造成了某個 id 斷號,另外乙個 id 重號。

你的任務是通過程式設計,找出斷號的 id 和重號的 id。

假設斷號不可能發生在最大和最小號。

輸入格式

第一行包含整數\(n\),表示後面共有 \(n\) 行資料。

接下來 \(n\) 行,每行包含空格分開的若干個(不大於100個)正整數(不大於100000),每個整數代表乙個 id 號。

輸出格式

要求程式輸出1行,含兩個整數 \(m,n\),用空格分隔。

其中,\(m\)表示斷號 id ,\(n\)表示重號 id。

資料範圍

\(\pmb\)

輸入樣例

2

5 6 8 11 9

10 12 9

輸出樣例

7 9
(暴力列舉) \(o(nlogn)\)

我們可以將資料排序,然後暴力列舉每乙個為\(f[i]\),如果發現\(f[i] - f[i - 1] == 0\) 則為重號,\(f[i] - f[i - 1] > 1\)則為缺號。

n = int(input());

f = ;

def main():

for i in range(n):

f.extend(list(map(int,input().split())));

f.sort();

size = len(f);

for i in range(1,size):

if f[i] - f[i - 1] == 0:

ans = f[i];

elif f[i] - f[i - 1] != 1:

res = (f[i] + f[i - 1]) >> 1;

print(res,ans);

return 0;

main();

Acwing1204錯誤票據

某涉密單位下發了某種票據,並要在年終全部收回。每張票據有唯一的id號。全年所有票據的id號是連續的,但id的開始數碼是隨機選定的。因為工作人員疏忽,在錄入id號的時候發生了一處錯誤,造成了某個id斷號,另外乙個id重號。你的任務是通過程式設計,找出斷號的id和重號的id。假設斷號不可能發生在最大和最...

藍橋杯歷屆試題 錯誤票據 水題

問題描述 某涉密單位下發了某種票據,並要在年終全部收回。每張票據有唯一的id號。全年所有票據的id號是連續的,但id的開始數碼是隨機選定的。因為工作人員疏忽,在錄入id號的時候發生了一處錯誤,造成了某個id斷號,另外乙個id重號。你的任務是通過程式設計,找出斷號的id和重號的id。假設斷號不可能發生...

藍橋杯2023年第四屆真題錯誤票據

題目描述 某涉密單位下發了某種票據,並要在年終全部收回。每張票據有唯一的id號。全年所有票據的id號是連續的,但id的開始數碼是隨機選定的。因為工作人員疏忽,在錄入id號的時候發生了一處錯誤,造成了某個id斷號,另外乙個id重號。你的任務是通過程式設計,找出斷號的id和重號的id。假設斷號不可能發生...