2017-12-16 26 views
-3

이 대기열에서 최대 값을 찾고 싶습니다. 어떻게 해결할 수 있습니까?이 대기열에서 최대 값을 찾는 방법은 무엇입니까?

queue<pair<int , int> > q; for(int i = 1; i <= n; i++){ int p; cin >> p; q.push(make_pair(p, i)); }

+0

지금까지 무엇을 했습니까? – DFord

+0

'대기열 <쌍 > q; for (int i = 1; i <= n; i ++) { \t int p; \t cin >> p; \t q.push (make_pair (p, i)); }' 해당 코드에서 최대 값을 찾으려면 ... –

+0

첫 번째 요소와 동일하게 var max를 정의하십시오. 대기열에서 모든 요소를 ​​하나씩 대기열에 넣거나 대기열에서 제거하고 현재 요소가 최대 값보다 큰 경우 정의한 최대 변수와 비교할 때마다 최대 요소가있는 마지막 최대 값을 만듭니다. – msoliman

답변

0

나는 코멘트를 남겨주세요하지 않을 경우,이 코드를 확인하십시오 내가 제대로 문제를 이해 희망 나는 당신이 필요로하는 무엇이든 할 수 있기를 바랍니다.

queue<pair<int , int> > q; 
int max=-1;//you can use INT_MIN in case you're accepting negative numbers too 

for(int i = 1; i <= n; i++) 
{ 
int p; 
cin >> p; 
//if you need to be based ONLY on user input 
if(p > max) max = p; 
//if you need to be based on BOTH user input and current i 
//if(p+i > max) max = p+I; 
//if you need to be based on ONLY current i 
//if(i > max) max = i; 
q.push(make_pair(p, i)); 

} 
+0

감사합니다. U @msoliman –

+0

감사합니다. 형제 님을 도울 수있어서 기뻤습니다. – msoliman