藍橋杯真題之錯誤票據
題目描述
標題:錯誤票據
某涉密單位下發了某種票據,並要在年終全部收回。
每張票據有唯一的ID號。全年所有票據的ID號是連續的,但ID的開始數碼是隨機選定的。
因為工作人員疏忽,在錄入ID號的時候發生了一處錯誤,造成了某個ID斷號,另外一個ID重號。
你的任務是通過程式設計,找出斷號的ID和重號的ID。
假設斷號不可能發生在最大和最小號。
要求程式首先輸入一個整數N(N<100)表示後面資料行數。
接著讀入N行資料。
每行資料長度不等,是用空格分開的若干個(不大於100個)正整數(不大於100000)
每個整數代表一個ID號。
要求程式輸出1行,含兩個整數m n,用空格分隔。
其中,m表示斷號ID,n表示重號ID
例如:
使用者輸入:
2
5 6 8 11 9
10 12 9
則程式輸出:
7 9
再例如:
使用者輸入:
6
164 178 108 109 180 155 141 159 104 182 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
則程式輸出:
105 120
資源約定:
峰值記憶體消耗 < 64M
CPU消耗 < 1000ms
請嚴格按要求輸出,不要畫蛇添足地列印類似:“請您輸入...” 的多餘內容。
所有程式碼放在同一個原始檔中,除錯通過後,拷貝提交該原始碼。
注意: main函式需要返回0
注意: 只使用ANSI C/ANSI C++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。
注意: 所有依賴的函式必須明確地在原始檔中 #include <xxx>, 不能通過工程設定而省略常用標頭檔案。
提交時,注意選擇所期望的編譯器型別。
分析:
拿到題目後,仔細分析了一下,實質就是找缺漏和重複。
實現方法有 1.把所有輸入存進陣列,排序,對比。 2.使用桶排序思想,即初始化陣列為0,把輸入的數作為下標進行自增,可知如果在有效區間內,值為0,則為缺,值為2,則為重複。有效區間是輸入的最小值和最大值那一段區間。本次我使用第二種方法。
提交序號 | 姓名 | 試題名稱 | 提交時間 | 程式碼長度 | 語言 C C++ JAVA | 評測結果 正確 錯誤 編譯出錯 執行錯誤 執行超時 記憶體超限 | 得分 | CPU使用 | 記憶體使用 | 評測詳情 |
---|---|---|---|---|---|---|---|---|---|---|
2966374 | 錯誤票據 | 12-09 16:32 | 685B | C++ | 正確 | 100 | 0ms | 1.292MB | 評測詳情 |
程式碼:
#include <bits/stdc++.h>
using namespace std;
int main(){
int a[100001] = { 0 };//定義陣列,初始化為0
int input;//輸入的下標
int q,c;//缺漏、重複
int n;//接收第一行
int min=100000,max=0;//初始化最小值和最大值
scanf("%d",&n);
while(scanf("%d",&input)!=EOF){////桶排序
max = max>input?max:input;//判斷最大值
min = min<input?min:input;//判斷最小值
a[input]++;//接收輸入的數作為陣列下標,進行自增
}
for(int i = min+1;i<=max-1;i++){//題目規定第一位和最後一位不出現缺漏和重複
if(a[i]==0)
{
q=i;
}
if(a[i]==2)
{
c=i;
}
}
printf("%d %d",q,c);
return 0;
}
最後說一下,關於給定行數,但每行輸入但資料次數是不定的,因為oj中用EOF結束,所以這裡這個問題可以不作考慮,只需要while(scanf(“%d”),&n)!=EOF)即可
本程式碼在藍橋杯練習系統測試通過。
相關文章
- 藍橋杯-錯誤票據(兩種寫法stringstream和扣字元)字元
- 藍橋杯真題
- 2013年藍橋杯真題
- 藍橋杯真題:純質數
- 藍橋杯省賽真題2013題解
- 藍橋杯2019年真題:字尾表示式
- [藍橋杯][2016年第七屆真題]冰雹數
- 2016藍橋杯省賽第七題剪郵票
- 藍橋杯-座次問題
- 藍橋杯-日期問題
- 藍橋杯
- [藍橋杯][2014年第五屆真題]地宮取寶
- [藍橋杯][2015年第六屆真題] 移動距離
- 藍橋杯全排列專題
- 題目 1841: [藍橋杯][2017年第八屆真題]發現環
- 2015年藍橋杯六屆省賽大學B組真題
- 2020藍橋杯省賽B組C++(第二場)真題C++
- 藍橋杯15年真題奇妙的數字暴力集合去重
- 藍橋杯例題-快速分揀
- 藍橋杯題目編號1265
- 藍橋杯 2014屆真題 地宮取寶 動態規劃解法動態規劃
- 藍橋杯模擬題——長草問題
- 藍橋杯嵌入式之點燈
- 【題解】爬山 藍橋杯2024省B
- 【藍橋杯】練習題目彙總
- 2013藍橋杯題解c++A組C++
- Java藍橋杯14年第五題Java
- 藍橋杯刷題-乘積尾零
- 藍橋杯 買瓜
- 藍橋杯-分巧克力
- 藍橋杯-N皇后
- 藍橋杯 剪格子
- 藍橋杯之帶分數(全排列+暴力)
- 2013藍橋杯題解c組C++C++
- 藍橋杯練習系統題目集
- 藍橋杯-長草(BFS)
- 藍橋杯-螞蟻感冒
- 藍橋杯-帶分數