P10815 【模板】快速读入题解

P10815 【模板】快速读入

题目背景

套取数据直接输出抢最优解是恶劣的违规行为,根据情节轻重,最高可以直接封号。

制约解除作战!

题目描述

给你 nnn 个数,你需要求和并输出。

输入格式

第一行一个整数 nnn

之后一行 nnn 个整数以空格隔开,表示给定的 nnn 个数。

输出格式

一行一个数表示给定的数的和。

输入输出样例 #1

输入 #1

5
-1 2 -3 4 -5

输出 #1

-3

说明/提示

对于 25%25\%25% 的数据,满足 n=105n=10^5n=105

对于 25%25\%25% 的数据,满足 n=106n=10^6n=106

对于 25%25\%25% 的数据,满足 n=107n=10^7n=107

对于 25%25\%25% 的数据,满足 n=108n=10^8n=108

对于 100%100\%100% 的数据,满足所有数在 [−n,n][-n,n][n,n] 之间。

数据保证对于序列的任何前缀,这个前缀的和在 32 位有符号整形的存储范围内。

思路

使用快速读入即可。

代码见下

#include<bits/stdc++.h>
using namespace std;
int n,a,b=0;
char *p1,*p2,buf[100000];
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
int read(){
    int x=0,f=1;
    char ch=nc();
    while(ch<48||ch>57){
        if(ch=='-'){
            f=-1;
        }
        ch=nc();
    }
    while(ch>=48&&ch<=57){
        x=x*10+ch-48;
        ch=nc();
    }
   	return x*f;
}
int main(){
	cin>>n;
    for(int i=1;i<=n;i++){
        //scanf("%d",&a);
        b+=read();
    }
    cout<<b<<endl;
    return 0;
}
posted @ 2025-10-29 21:23  bz02_2023f2  阅读(2)  评论(0)    收藏  举报  来源