【網易】小易的升級之路
阿新 • • 發佈:2018-11-05
題目描述
小易經常沉迷於網路遊戲.有一次,他在玩一個打怪升級的遊戲,他的角色的初始能力值為 a.在接下來的一段時間內,他將會依次遇見n個怪物,每個怪物的防禦力為b1,b2,b3...bn. 如果遇到的怪物防禦力bi小於等於小易的當前能力值c,那麼他就能輕鬆打敗怪物,並 且使得自己的能力值增加bi;如果bi大於c,那他也能打敗怪物,但他的能力值只能增加bi 與c的最大公約數.那麼問題來了,在一系列的鍛鍊後,小易的最終能力值為多少?
輸入描述:
對於每組資料,第一行是兩個整數n(1≤n<100000)表示怪物的數量和a表示小易的初始能力值. 第二行n個整數,b1,b2...bn(1≤bi≤n)表示每個怪物的防禦力
輸出描述:
對於每組資料,輸出一行.每行僅包含一個整數,表示小易的最終能力值
示例1
輸入
3 50 50 105 200 5 20 30 20 15 40 100
輸出
110 205
#include <iostream> #include "stdio.h" #include <vector> using namespace std; int gcd(int m ,int n) { if(n==0) return m; int temp = m%n; m=n; n=temp; return gcd(m,n); } int main() { int n,ans; while(cin>>n>>ans) { while(n>0) { int cur; cin>>cur; ans = ans + ((ans<cur)? gcd(cur, ans):cur); n--; } cout<<ans<<endl; } return 0; }