Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

รหัส C++ ถึงจำนวนผู้ชมที่ยืน ณ เวลา t


สมมติว่าเรามีตัวเลขสามตัว n, k และ t Amal กำลังวิเคราะห์คลื่นเม็กซิกัน มีผู้ชมจำนวน n คนตั้งแต่ 1 ถึง n เริ่มตั้งแต่เวลา 0 เวลาที่ 1 ผู้ชมคนแรกยืน เวลาที่ 2 ผู้ชมที่สองยืน ณ เวลาที่ k ผู้ชมที่ k ยืนขึ้น ในเวลา (k+1) ผู้ชมที่ (k+1) ยืนและผู้ชมคนแรกนั่ง ที่ (k+2) ผู้ชมที่ (k+2) ยืนอยู่ แต่คนที่ 2 นั่ง ตอนนี้เป็นครั้งที่ n ผู้ชมที่ n ยืนและ (n-k) ผู้ชมนั่ง ณ เวลา (n+1) ผู้ชมที่ (n+1-k) นั่งไปเรื่อยๆ เราต้องหาจำนวนผู้ชมยืน ณ เวลา t.

ดังนั้น ถ้าอินพุตเป็นเหมือน n =10; k =5; t =3 จากนั้นผลลัพธ์จะเป็น 3 เพราะก่อน 5 จะไม่มีใครนั่งดังนั้นผู้ชมจาก 1 ถึง 3 ทุกคนจึงยืน

ขั้นตอน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

return minimum of t, k and (n + k - t)

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;
int solve(int n, int k, int t){
   return min({ t, k, n + k - t });
}
int main(){
   int n = 10;
   int k = 5;
   int t = 3;
   cout << solve(n, k, t) << endl;
}

อินพุต

10, 5, 3

ผลลัพธ์

3