有一个 ? × ? 的矩阵 ? ,在每行任取一个位置,把这些位置的元素相加得到一个和 ? ,求前 ? 小的和。
【输入格式】 第一行一个整数 ? 。
接下来 ? 行,每行 ? 个整数,表示 ? ( ? , ? ) 。
【输出格式】 输出一行 ? 个整数,表示前 ? 小的和。
这是题面,附我的拙劣代码
#include<iostream>
#include<queue>
#include<deque>
using namespace std;
int n,a;
priority_queue<int> pq;
queue<int> qu;
deque<int> dq;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
if(i==1){
for(int j=1;j<=n;j++){
cin>>a;
pq.push(a);
}
while(pq.size()>n) pq.pop();
}
else{
while(pq.size()){
qu.push(pq.top());
pq.pop();
// cout<<qu.back()<<" ";
}
for(int j=1;j<=n;j++){
cin>>a;
for(int k=1;k<=n;k++){
pq.push(qu.front()+a);
// cout<<qu.front()<<" ";
qu.push(qu.front());
qu.pop();
}
}
// cout<<"\n";
while(pq.size()>n) pq.pop();
}
}
while(pq.size()) dq.push_back(pq.top()),pq.pop();
while(dq.size()){
cout<<dq.back()<<" ";
dq.pop_back();
}
return 0;
}
大佬求调qwq
感觉和P1392有点像