当前位置:网站首页>Pat grade a 1044 shopping in Mars
Pat grade a 1044 shopping in Mars
2022-07-26 16:11:00 【IX. is it a non random title】
Self implemented content :
#include<iostream>
#include<vector>
#include<string>
#include<map>
#include<bits/stdc++.h>
using namespace std;
typedef struct _record{
int start;
int end;
}record;
bool compare(const record& a, const record& b){
if(a.start < b.start) return true;
else return false;
}
int main(void){
int i, j, k, m, n, h, mm, nn, sum, minsum=99999999;
int start, end;
cin>>m>>n;
string s, s0, s00;
vector<int> v, v0, v00;
for(i = 0; i < m; i++){
cin>>k;
v.push_back(k);
}
record rec;
vector<record> vec, par;
int mar = 999;
for(i = 0; i < m; i++){
sum = v[i];
if(sum > n && sum > minsum && mar > 0) continue;
if(sum > n && mar < 0) continue;
if(sum > n && sum <= minsum && mar > 0){
rec.start = i + 1;
rec.end = i + 1;
if(par.size()>0 && sum!=minsum)
par.erase(par.begin(), par.begin()+1);
par.push_back(rec);
minsum = sum;
}
if(sum==n){
rec.start = i + 1;
rec.end = i + 1;
vec.push_back(rec);
mar = -999;
continue;
}
for(j = i + 1; j < m; j++){
sum += v[j];
if(sum > n && sum > minsum && mar > 0) break;
if(sum > n && mar < 0) break;
if(sum > n && sum <= minsum && mar > 0){
rec.start = i + 1;
rec.end = j + 1;
if(par.size()>0 && sum!=minsum)
par.erase(par.begin(), par.begin()+1);
par.push_back(rec);
minsum = sum;
}
if(sum==n){
rec.start = i + 1;
rec.end = j + 1;
vec.push_back(rec);
mar = -999;
break;
}
}
}
if(mar > 0){
vec = par;
}
sort(vec.begin(), vec.end(), compare);
for(i = 0; i < vec.size(); i++){
printf("%d-%d\n", vec[i].start, vec[i].end);
}
return 0;
}Refer to others' implementation
#include<iostream>
#include<vector>
#include<string>
#include<map>
#include<bits/stdc++.h>
using namespace std;
vector<int> v, v0;
int m, n, mid, tempsum;
int _binary_search_(int i){
int left = i;
int right = m;
while(left < right){
mid = (left + right)/2;
if((v[mid] - v[i - 1]) >= n) right = mid;
else left = mid + 1;
}
mid = right;
tempsum = v[right] - v[i - 1];
return tempsum;
}
int main(void){
int i, j, k, h, sum, minsum;
cin>>m>>n;
v.resize(m + 1);
v[0] = 0;
for(i = 1; i <= m; i++){
cin>>k;
v[i] = (k + v[i - 1]);
}
minsum = v[m];
for(i = 1; i <= m; i++){
tempsum = _binary_search_(i);
if(tempsum > minsum) continue;
if(tempsum >= n){
if(tempsum < minsum){
v0.clear();
minsum = tempsum;
}
v0.push_back(i);
v0.push_back(mid);
}
}
for(i = 0; i < v0.size()/2; i++){
printf("%d-%d\n", v0[i * 2], v0[i * 2 + 1]);
}
return 0;
}
边栏推荐
- .net get injection object manually
- Clojure 运行原理之字节码生成篇
- 德国emg电动执行器EB800-60II
- SQL statement -- single line comment and multi line comment
- API version control [eolink translation]
- Is it safe for CICC fortune to speculate in stocks? The securities company with the cheapest handling fee
- TKE集群节点max-pod是如何配置的
- 【工具分享】自动生成文件目录结构工具mddir
- SAP ABAP Netweaver 容器化的一些前沿性研究工作分享
- PAT甲级 1045 Favorite Color Stripe
猜你喜欢

FTP协议
.net get injection object manually

Pandora IOT development board learning (RT thread) - Experiment 17 esp8266 experiment (learning notes)

Botu PLC Sequential switch function block (SCL)

SAP ABAP 守护进程的实现方式

parker泵PV140R1K1T1PMMC

测试用例千万不能随便,记录由一个测试用例异常引起的思考

DELTA控制器RMC200

如何通过ETL调度工具 TASKCTL 使用作业插件类型调用 kettle作业?

Research and application of the whole configuration of large humanoid robot
随机推荐
zabbix 6.2.0部署
基于SSM开发实现校园疫情防控管理系统
PAT甲级 1049 Counting Ones
“核弹级” Log4j 漏洞仍普遍存在,并造成持续影响
终于有人把红蓝对抗讲明白了
泰山OFFICE技术讲座:WORD的缩放比例与显示略有差异
bucher齿轮泵QX81-400R301
基于NoCode构建简历编辑器
I would like to ask you guys, how to specify the character set of MySQL CDC tables? I can't find the corresponding connector parameters on the official website. I read one
TKE集群节点max-pod是如何配置的
马斯克被曝绿了谷歌创始人:导致挚友二婚破裂,曾下跪求原谅
parker泵PV140R1K1T1PMMC
Is it safe for CICC fortune to speculate in stocks? The securities company with the cheapest handling fee
2022 latest Beijing Construction Safety Officer simulation question bank and answers
Paper: all models are wrong, but many are useful: all models are wrong, but many are useful: understand the importance of variables by studying a whole class of prediction models at the same time
Pandora IOT development board learning (RT thread) - Experiment 17 esp8266 experiment (learning notes)
Gcc/g++ and dynamic and static libraries and GDB
Google Earth Engine——MERRA-2 M2T1NXSLV:1980-至今全球压力、温度、风等数据集
中金财富炒股安全吗 手续费最便宜的证券公司
Robot hand eye calibration ax=xb (eye to hand and eye in hand) and plane nine point calibration
https://github.com/ZouJiu1/PAT