0分全RE
  • 板块B3617 古籍翻译
  • 楼主rxy915
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/7/19 00:51
  • 上次更新2023/11/3 08:59:49
查看原帖
0分全RE
579493
rxy915楼主2023/7/19 00:51

Runtime Error

Received signal 6:

Aborted/IOT trap.

本地运行没问题,提交上去全RE,是STL中内存分配的问题吗?

#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<deque>
#include<fstream>
#include<iomanip>
#include<iostream>
#include<limits>
#include<map>
#include<numeric>
#include<queue>
#include<sstream>
#include<stack>
#include<string>
#include<vector>
//#define int long long
using namespace std;
template<typename _OutputIterator>
_OutputIterator input(_OutputIterator __first, _OutputIterator __last){
	for(_OutputIterator __i=__first;__i<__last;++__i){
		cin>>*__i;
	}
	return __first;
}
template<typename _InputIterator>
void print(_InputIterator __first, _InputIterator __last, string __inter = " "){
	for(_InputIterator __i=__first;__i<__last;++__i){
		cout<<*__i<<__inter;
	}
}
void SpeedUpIOstream
(
	bool sync = false,
	basic_ostream<char, struct char_traits<char> > *itie = nullptr,
	basic_ostream<char, struct char_traits<char> > *otie = nullptr
){
	ios::sync_with_stdio(sync);
	cin.tie(itie);
	cout.tie(otie);
}
string times(string s1,string s2){
    int n1=s1.size(),n2=s2.size();
    reverse(s1.begin(),s1.end());
    reverse(s2.begin(),s2.end());
    vector<int> a(s1.begin(),s1.end());
    vector<int> b(s2.begin(),s2.end());
    typedef typename vector<int>::iterator iter;
    for(iter i=a.begin();i<a.end();i++) *i-=48;
    for(iter i=b.begin();i<b.end();i++) *i-=48;
    vector<int> c(n1+n2);
    int flag=0;
    for(int i=0;i<n1;i++){
		flag=0;
		for(int j=0;j<n2;j++){
			c[i+j]+=a[i]*b[j]+flag;
			flag=c[i+j]/10;
			c[i+j]%=10;
		}
		c[i+n2]+=flag;
	}
    while(c.back()==0){
        c.pop_back();
    }
    reverse(c.begin(),c.end());
    for(iter i=c.begin();i<c.end();i++) *i+=48;
    return string(c.begin(),c.end());
}
string plus(string s1,string s2){
	int n1=s1.size(),n2=s2.size();
	int n=max(n1,n2);
    reverse(s1.begin(),s1.end());
    reverse(s2.begin(),s2.end());
    vector<int> a(s1.begin(),s1.end());
    vector<int> b(s2.begin(),s2.end());
    typedef typename vector<int>::iterator iter;
    for(iter i=a.begin();i<a.end();i++) *i-=48;
    for(iter i=b.begin();i<b.end();i++) *i-=48;
    a.resize(n);
    b.resize(n);
    vector<int> c(n);
    int flag=0;
    for(int i=0;i<n;i++){
    	c[i]=a[i]+b[i]+flag;
    	flag=c[i]>9;
    	c[i]%=10;
	}
	c.push_back(flag);
    while(c.back()==0){
        c.pop_back();
    }
    reverse(c.begin(),c.end());
    for(iter i=c.begin();i<c.end();i++) *i+=48;
    return string(c.begin(),c.end());
}
string devide(string a,int b){
	if(a=="0"){
		return string("0");
	}
	int alen=a.length();
	a+='\0';
	string c;
	long long num=a[0]-48;
	for(int i=0;i<alen;i++){
		c+=num/b+48;
		num%=b;
		num*=10;
		num+=a[i+1]-48;
	}
	while(c.front()=='0'&&c.size()>1){
		c.erase(0,1);
	}
	return string(c);
}
int mod(string a,int b){
	int m=0;
	typedef typename string::iterator iter;
	for(iter i=a.begin();i<a.end();i++){
		m=(m*10+(*i-48))%b;
	}
	return m;
}
#define plus ::plus
string s8,s10,s16;
const string bits="0123456789abcdef";
int main(){
//	string a;
//	int b;
//	cin>>a>>b;
//	cout<<mod(a,b)<<endl;
    SpeedUpIOstream();
    cin>>s8;
    while(!s8.empty()){
    	s10=times("8",s10);
    	s10=plus(s8.substr(0,1),s10);
    	s8.erase(0,1);
	}
//	cout<<s10<<endl;
	while(s10!="0"){
		s16.push_back(bits[mod(s10,16)]);
		s10=devide(s10,16);
	}
	reverse(s16.begin(),s16.end());
	cout<<s16;
    return 0;
}
2023/7/19 00:51
加载中...