Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <cmath>
- using namespace std;
- short int n,v[1001];
- unsigned short int dimD=1;
- #define NMax 100000
- #define B 1000
- typedef unsigned short int Huge[NMax+3];
- void inmultire(Huge A,short int n)
- {
- unsigned short int i;
- unsigned int t=0;
- for(i=1;i<=dimD||t;++i,t/=B)
- A[i]=(t+=A[i]*n)%B;
- dimD=(int)i-1;
- }
- int main()
- {
- ifstream fin("determinantb.in");
- fin>>n;
- for(short int i=1;i<=n;++i)
- fin>>v[i];
- ofstream fout("determinantb.out");
- if(n>201)
- {
- fout<<"0\n";
- return 0;
- }
- Huge D;
- D[1]=1;
- short int semn=1;
- for(short int i=1;i<n;++i)
- for(short int j=i+1;j<=n;++j)
- {
- if(v[j]<v[i])
- semn*=-1;
- inmultire(D,abs(v[j]-v[i]));
- }
- if(semn==-1)
- fout<<'-';
- for(int i=dimD;i>0;--i)
- {
- if(i!=dimD)
- {
- if(D[i]<10)
- fout<<"00"<<D[i];
- else
- {
- if(D[i]<100)
- fout<<"0"<<D[i];
- else
- fout<<D[i];
- }
- }
- else
- fout<<D[i];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement